Commit 0e274c63 authored by steurwadkar's avatar steurwadkar

F17ABAS001 GST API integration wizard source code commit

git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@163432 ce508802-f39f-4f6c-b175-0d175dae99d5
parent 768e6cf6
...@@ -285,8 +285,8 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi ...@@ -285,8 +285,8 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
appKeyInBytes = aesEncryption.decodeBase64StringTOByte(appKey); appKeyInBytes = aesEncryption.decodeBase64StringTOByte(appKey);
appKeyEncryptedAndCoded = pubKeyEncryption.encrypt(appKeyInBytes); appKeyEncryptedAndCoded = pubKeyEncryption.encrypt(appKeyInBytes);
sql = " SELECT S.SITE_CODE, S.SH_DESCR, ST.GST_CODE, ST.DESCR, SR.REF_CODE, SR.REG_NO FROM SITE S, SITEREGNO SR, STATE ST" sql = " SELECT S.SITE_CODE, S.SH_DESCR, SUBSTR(REG_NO,0,2) AS GST_CODE, ST.DESCR, SR.REF_CODE, SR.REG_NO FROM SITE S, SITEREGNO SR, STATE ST"
+ " WHERE S.SITE_CODE = SR.SITE_CODE AND S.FIN_ENTITY = SR.FIN_ENTITY AND S.STATE_CODE = ST.STATE_CODE AND SR.REF_CODE IN ('GSTIN_NO','GST_UNAME','GST_GT','GST_CUR_GT')" + " WHERE S.SITE_CODE = SR.SITE_CODE AND S.FIN_ENTITY = SR.FIN_ENTITY AND SUBSTR(REG_NO,0,2) = ST.GST_CODE (+) AND SR.REF_CODE IN ('GSTIN_NO','GST_UNAME','GST_GT','GST_CUR_GT')"
+ " AND SR.SITE_CODE = ? "; + " AND SR.SITE_CODE = ? ";
pstmt = conn.prepareStatement(sql); pstmt = conn.prepareStatement(sql);
pstmt.setString(1, siteCode); pstmt.setString(1, siteCode);
...@@ -298,6 +298,8 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi ...@@ -298,6 +298,8 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
if("GSTIN_NO".equalsIgnoreCase(checkNull(rs.getString("REF_CODE")))) if("GSTIN_NO".equalsIgnoreCase(checkNull(rs.getString("REF_CODE"))))
{ {
gstinNo = checkNull(rs.getString("REG_NO")); gstinNo = checkNull(rs.getString("REG_NO"));
stateCode = checkNull(rs.getString("GST_CODE"));
stateDescr = checkNull(rs.getString("DESCR"));
} }
if("GST_UNAME".equalsIgnoreCase(checkNull(rs.getString("REF_CODE")))) if("GST_UNAME".equalsIgnoreCase(checkNull(rs.getString("REF_CODE"))))
{ {
...@@ -311,8 +313,6 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi ...@@ -311,8 +313,6 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
{ {
currentYearGrossTurnover = checkNull(rs.getString("REG_NO")); currentYearGrossTurnover = checkNull(rs.getString("REG_NO"));
} }
stateCode = checkNull(rs.getString("GST_CODE"));
stateDescr = checkNull(rs.getString("DESCR"));
} }
if(rs != null) if(rs != null)
{ {
...@@ -1056,137 +1056,217 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi ...@@ -1056,137 +1056,217 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
if("SAVE".equalsIgnoreCase(dataAction)) if("SAVE".equalsIgnoreCase(dataAction))
{ {
sql = "SELECT COUNT(1) AS CNT FROM GST_DATA_HDR WHERE REC_TYPE = ? AND SUBMIT_STATUS = 'P' AND PRD_CODE = ? AND SITE_CODE = ?"; if(!isDataError)
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, recType);
pstmt.setString(2, periodCode);
pstmt.setString(3, siteCode);
rs = pstmt.executeQuery();
if(rs.next())
{ {
if(rs.getInt("CNT") == 0) sql = "SELECT COUNT(1) AS CNT FROM GST_DATA_HDR WHERE REC_TYPE = ? AND SUBMIT_STATUS = 'P' AND PRD_CODE = ? AND SITE_CODE = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, recType);
pstmt.setString(2, periodCode);
pstmt.setString(3, siteCode);
rs = pstmt.executeQuery();
if(rs.next())
{ {
isDataError = true; if(rs.getInt("CNT") == 0)
errorCode = "VTNOGSDATA"; {
isDataError = true;
errorCode = "VTNOGSDATA";
}
} }
closeResources(rs, pstmt);
} }
closeResources(rs, pstmt);
if(!isDataError)
sql = "SELECT COUNT(1) AS CNT FROM GST_DATA_HDR WHERE REC_TYPE = ? AND SUBMIT_STATUS = 'S' AND PRD_CODE = ? AND SITE_CODE = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, recType);
pstmt.setString(2, periodCode);
pstmt.setString(3, siteCode);
rs = pstmt.executeQuery();
if(rs.next())
{ {
if(rs.getInt("CNT") > 0) sql = "SELECT COUNT(1) AS CNT FROM GST_DATA_HDR WHERE REC_TYPE = ? AND SUBMIT_STATUS IN ('U','N','D') AND PRD_CODE = ? AND SITE_CODE = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, recType);
pstmt.setString(2, periodCode);
pstmt.setString(3, siteCode);
rs = pstmt.executeQuery();
if(rs.next())
{ {
isDataError = true; if(rs.getInt("CNT") > 0)
errorCode = "VTSUBALRDY"; {
isDataError = true;
errorCode = "VTCHKRETST";
}
} }
closeResources(rs, pstmt);
} }
closeResources(rs, pstmt);
sql = "SELECT COUNT(1) AS CNT FROM GST_DATA_HDR WHERE REC_TYPE = ? AND SUBMIT_STATUS = 'R' AND PRD_CODE = ? AND SITE_CODE = ?"; if(!isDataError)
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, recType);
pstmt.setString(2, periodCode);
pstmt.setString(3, siteCode);
rs = pstmt.executeQuery();
if(rs.next())
{ {
if(rs.getInt("CNT") > 0) sql = "SELECT COUNT(1) AS CNT FROM GST_DATA_HDR WHERE REC_TYPE = ? AND SUBMIT_STATUS = 'S' AND PRD_CODE = ? AND SITE_CODE = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, recType);
pstmt.setString(2, periodCode);
pstmt.setString(3, siteCode);
rs = pstmt.executeQuery();
if(rs.next())
{ {
isDataError = true; if(rs.getInt("CNT") > 0)
errorCode = "VTFILALRDY"; {
isDataError = true;
errorCode = "VTSUBALRDY";
}
} }
closeResources(rs, pstmt);
}
if(!isDataError)
{
sql = "SELECT COUNT(1) AS CNT FROM GST_DATA_HDR WHERE REC_TYPE = ? AND SUBMIT_STATUS = 'R' AND PRD_CODE = ? AND SITE_CODE = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, recType);
pstmt.setString(2, periodCode);
pstmt.setString(3, siteCode);
rs = pstmt.executeQuery();
if(rs.next())
{
if(rs.getInt("CNT") > 0)
{
isDataError = true;
errorCode = "VTFILALRDY";
}
}
closeResources(rs, pstmt);
} }
closeResources(rs, pstmt);
} }
else if("SUBMIT".equalsIgnoreCase(dataAction)) else if("SUBMIT".equalsIgnoreCase(dataAction))
{ {
sql = "SELECT COUNT(1) AS CNT FROM GST_DATA_HDR WHERE REC_TYPE = ? AND SUBMIT_STATUS = 'S' AND PRD_CODE = ? AND SITE_CODE = ?"; if(!isDataError)
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, recType);
pstmt.setString(2, periodCode);
pstmt.setString(3, siteCode);
rs = pstmt.executeQuery();
if(rs.next())
{ {
if(rs.getInt("CNT") > 0) sql = "SELECT COUNT(1) AS CNT FROM GST_DATA_HDR WHERE REC_TYPE = ? AND SUBMIT_STATUS = 'S' AND PRD_CODE = ? AND SITE_CODE = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, recType);
pstmt.setString(2, periodCode);
pstmt.setString(3, siteCode);
rs = pstmt.executeQuery();
if(rs.next())
{ {
isDataError = true; if(rs.getInt("CNT") > 0)
errorCode = "VTSUBALRDY"; {
isDataError = true;
errorCode = "VTSUBALRDY";
}
} }
closeResources(rs, pstmt);
} }
closeResources(rs, pstmt);
sql = "SELECT COUNT(1) AS CNT FROM GST_DATA_HDR WHERE REC_TYPE = ? AND SUBMIT_STATUS = 'T' AND PRD_CODE = ? AND SITE_CODE = ?"; if(!isDataError)
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, recType);
pstmt.setString(2, periodCode);
pstmt.setString(3, siteCode);
rs = pstmt.executeQuery();
if(rs.next())
{ {
if(rs.getInt("CNT") == 0) sql = "SELECT COUNT(1) AS CNT FROM GST_DATA_HDR WHERE REC_TYPE = ? AND SUBMIT_STATUS IN ('U','N','D') AND PRD_CODE = ? AND SITE_CODE = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, recType);
pstmt.setString(2, periodCode);
pstmt.setString(3, siteCode);
rs = pstmt.executeQuery();
if(rs.next())
{ {
isDataError = true; if(rs.getInt("CNT") > 0)
errorCode = "VTNORECSAV"; {
isDataError = true;
errorCode = "VTCHKRETST";
}
} }
closeResources(rs, pstmt);
} }
closeResources(rs, pstmt);
sql = "SELECT COUNT(1) AS CNT FROM GST_DATA_HDR WHERE REC_TYPE = ? AND SUBMIT_STATUS = 'R' AND PRD_CODE = ? AND SITE_CODE = ?"; if(!isDataError)
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, recType);
pstmt.setString(2, periodCode);
pstmt.setString(3, siteCode);
rs = pstmt.executeQuery();
if(rs.next())
{ {
if(rs.getInt("CNT") > 0) sql = "SELECT COUNT(1) AS CNT FROM GST_DATA_HDR WHERE REC_TYPE = ? AND SUBMIT_STATUS = 'T' AND PRD_CODE = ? AND SITE_CODE = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, recType);
pstmt.setString(2, periodCode);
pstmt.setString(3, siteCode);
rs = pstmt.executeQuery();
if(rs.next())
{ {
isDataError = true; if(rs.getInt("CNT") == 0)
errorCode = "VTFILALRDY"; {
isDataError = true;
errorCode = "VTNORECSAV";
}
} }
closeResources(rs, pstmt);
}
if(!isDataError)
{
sql = "SELECT COUNT(1) AS CNT FROM GST_DATA_HDR WHERE REC_TYPE = ? AND SUBMIT_STATUS = 'R' AND PRD_CODE = ? AND SITE_CODE = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, recType);
pstmt.setString(2, periodCode);
pstmt.setString(3, siteCode);
rs = pstmt.executeQuery();
if(rs.next())
{
if(rs.getInt("CNT") > 0)
{
isDataError = true;
errorCode = "VTFILALRDY";
}
}
closeResources(rs, pstmt);
} }
closeResources(rs, pstmt);
} }
else if("FILE".equalsIgnoreCase(dataAction)) else if("FILE".equalsIgnoreCase(dataAction))
{ {
sql = "SELECT COUNT(1) AS CNT FROM GST_DATA_HDR WHERE REC_TYPE = ? AND SUBMIT_STATUS = 'S' AND PRD_CODE = ? AND SITE_CODE = ?"; if(!isDataError)
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, recType);
pstmt.setString(2, periodCode);
pstmt.setString(3, siteCode);
rs = pstmt.executeQuery();
if(rs.next())
{ {
if(rs.getInt("CNT") == 0) sql = "SELECT COUNT(1) AS CNT FROM GST_DATA_HDR WHERE REC_TYPE = ? AND SUBMIT_STATUS = 'S' AND PRD_CODE = ? AND SITE_CODE = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, recType);
pstmt.setString(2, periodCode);
pstmt.setString(3, siteCode);
rs = pstmt.executeQuery();
if(rs.next())
{ {
isDataError = true; if(rs.getInt("CNT") == 0)
errorCode = "VTGSTSUBPN"; {
isDataError = true;
errorCode = "VTGSTSUBPN";
}
} }
closeResources(rs, pstmt);
} }
closeResources(rs, pstmt);
sql = "SELECT COUNT(1) AS CNT FROM GST_DATA_HDR WHERE REC_TYPE = ? AND SUBMIT_STATUS = 'R' AND PRD_CODE = ? AND SITE_CODE = ?"; if(!isDataError)
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, recType);
pstmt.setString(2, periodCode);
pstmt.setString(3, siteCode);
rs = pstmt.executeQuery();
if(rs.next())
{ {
if(rs.getInt("CNT") > 0) sql = "SELECT COUNT(1) AS CNT FROM GST_DATA_HDR WHERE REC_TYPE = ? AND SUBMIT_STATUS IN ('U','N','D') AND PRD_CODE = ? AND SITE_CODE = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, recType);
pstmt.setString(2, periodCode);
pstmt.setString(3, siteCode);
rs = pstmt.executeQuery();
if(rs.next())
{ {
isDataError = true; if(rs.getInt("CNT") > 0)
errorCode = "VTGSTFILE"; {
isDataError = true;
errorCode = "VTCHKRETST";
}
} }
closeResources(rs, pstmt);
}
if(!isDataError)
{
sql = "SELECT COUNT(1) AS CNT FROM GST_DATA_HDR WHERE REC_TYPE = ? AND SUBMIT_STATUS = 'R' AND PRD_CODE = ? AND SITE_CODE = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, recType);
pstmt.setString(2, periodCode);
pstmt.setString(3, siteCode);
rs = pstmt.executeQuery();
if(rs.next())
{
if(rs.getInt("CNT") > 0)
{
isDataError = true;
errorCode = "VTGSTFILE";
}
}
closeResources(rs, pstmt);
} }
closeResources(rs, pstmt);
} }
else if("GETINV".equalsIgnoreCase(dataAction) && !"GSTR2A".equalsIgnoreCase(recordType)) else if("GETINV".equalsIgnoreCase(dataAction) && !"GSTR2A".equalsIgnoreCase(recordType))
{ {
...@@ -1210,28 +1290,28 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi ...@@ -1210,28 +1290,28 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
{ {
int saveRecCnt = 0; int saveRecCnt = 0;
sql = "SELECT COUNT(1) AS CNT FROM GST_DATA_HDR WHERE REC_TYPE = ? AND SUBMIT_STATUS = 'T' AND PRD_CODE = ? AND SITE_CODE = ?"; if(!isDataError)
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, recType);
pstmt.setString(2, periodCode);
pstmt.setString(3, siteCode);
rs = pstmt.executeQuery();
if(rs.next())
{ {
saveRecCnt = rs.getInt("CNT"); sql = "SELECT COUNT(1) AS CNT FROM GST_DATA_HDR WHERE REC_TYPE = ? AND SUBMIT_STATUS IN ('U','N','D') AND PRD_CODE = ? AND SITE_CODE = ?";
if(saveRecCnt == 0) pstmt = conn.prepareStatement(sql);
pstmt.setString(1, recType);
pstmt.setString(2, periodCode);
pstmt.setString(3, siteCode);
rs = pstmt.executeQuery();
if(rs.next())
{ {
isDataError = true; if(rs.getInt("CNT") > 0)
errorCode = "VTNORECDEL"; {
isDataError = true;
errorCode = "VTCHKRETST";
}
} }
closeResources(rs, pstmt);
} }
closeResources(rs, pstmt);
if(saveRecCnt == 0) if(!isDataError)
{ {
int pendRecDnt = 0; sql = "SELECT COUNT(1) AS CNT FROM GST_DATA_HDR WHERE REC_TYPE = ? AND SUBMIT_STATUS = 'T' AND PRD_CODE = ? AND SITE_CODE = ?";
sql = "SELECT COUNT(1) AS CNT FROM GST_DATA_HDR WHERE REC_TYPE = ? AND SUBMIT_STATUS = 'P' AND PRD_CODE = ? AND SITE_CODE = ?";
pstmt = conn.prepareStatement(sql); pstmt = conn.prepareStatement(sql);
pstmt.setString(1, recType); pstmt.setString(1, recType);
pstmt.setString(2, periodCode); pstmt.setString(2, periodCode);
...@@ -1239,53 +1319,101 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi ...@@ -1239,53 +1319,101 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
rs = pstmt.executeQuery(); rs = pstmt.executeQuery();
if(rs.next()) if(rs.next())
{ {
pendRecDnt = rs.getInt("CNT"); saveRecCnt = rs.getInt("CNT");
if(pendRecDnt == 0) if(saveRecCnt == 0)
{ {
isDataError = true; isDataError = true;
errorCode = "VTNDGSDATA"; errorCode = "VTNORECDEL";
} }
else }
closeResources(rs, pstmt);
if(saveRecCnt == 0)
{
int pendRecDnt = 0;
sql = "SELECT COUNT(1) AS CNT FROM GST_DATA_HDR WHERE REC_TYPE = ? AND SUBMIT_STATUS = 'P' AND PRD_CODE = ? AND SITE_CODE = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, recType);
pstmt.setString(2, periodCode);
pstmt.setString(3, siteCode);
rs = pstmt.executeQuery();
if(rs.next())
{
pendRecDnt = rs.getInt("CNT");
if(pendRecDnt == 0)
{
isDataError = true;
errorCode = "VTNDGSDATA";
}
else
{
isDataError = true;
errorCode = "VTPENGSDAT";
}
}
closeResources(rs, pstmt);
}
}
if(!isDataError)
{
sql = "SELECT COUNT(1) AS CNT FROM GST_DATA_HDR WHERE REC_TYPE = ? AND SUBMIT_STATUS = 'S' AND PRD_CODE = ? AND SITE_CODE = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, recType);
pstmt.setString(2, periodCode);
pstmt.setString(3, siteCode);
rs = pstmt.executeQuery();
if(rs.next())
{
if(rs.getInt("CNT") > 0)
{ {
isDataError = true; isDataError = true;
errorCode = "VTPENGSDAT"; errorCode = "VTSUBALRDY";
} }
} }
closeResources(rs, pstmt); closeResources(rs, pstmt);
} }
sql = "SELECT COUNT(1) AS CNT FROM GST_DATA_HDR WHERE REC_TYPE = ? AND SUBMIT_STATUS = 'S' AND PRD_CODE = ? AND SITE_CODE = ?"; if(!isDataError)
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, recType);
pstmt.setString(2, periodCode);
pstmt.setString(3, siteCode);
rs = pstmt.executeQuery();
if(rs.next())
{ {
if(rs.getInt("CNT") > 0) sql = "SELECT COUNT(1) AS CNT FROM GST_DATA_HDR WHERE REC_TYPE = ? AND SUBMIT_STATUS = 'R' AND PRD_CODE = ? AND SITE_CODE = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, recType);
pstmt.setString(2, periodCode);
pstmt.setString(3, siteCode);
rs = pstmt.executeQuery();
if(rs.next())
{ {
isDataError = true; if(rs.getInt("CNT") > 0)
errorCode = "VTSUBALRDY"; {
isDataError = true;
errorCode = "VTFILALRDY";
}
} }
closeResources(rs, pstmt);
} }
closeResources(rs, pstmt); }
else if("RETSTATUS".equalsIgnoreCase(dataAction))
sql = "SELECT COUNT(1) AS CNT FROM GST_DATA_HDR WHERE REC_TYPE = ? AND SUBMIT_STATUS = 'R' AND PRD_CODE = ? AND SITE_CODE = ?"; {
pstmt = conn.prepareStatement(sql); if(!isDataError)
pstmt.setString(1, recType);
pstmt.setString(2, periodCode);
pstmt.setString(3, siteCode);
rs = pstmt.executeQuery();
if(rs.next())
{ {
if(rs.getInt("CNT") > 0) sql = "SELECT COUNT(1) AS CNT FROM GST_DATA_HDR WHERE REC_TYPE = ? AND SUBMIT_STATUS IN ('U','N','D') AND PRD_CODE = ? AND SITE_CODE = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, recType);
pstmt.setString(2, periodCode);
pstmt.setString(3, siteCode);
rs = pstmt.executeQuery();
if(rs.next())
{ {
isDataError = true; if(rs.getInt("CNT") == 0)
errorCode = "VTFILALRDY"; {
isDataError = true;
errorCode = "VTNOCHKDAT";
}
} }
closeResources(rs, pstmt);
} }
closeResources(rs, pstmt);
} }
if(!isDataError) if(!isDataError)
...@@ -2823,7 +2951,8 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi ...@@ -2823,7 +2951,8 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
if(tempJsonObj.has("ul")) if(tempJsonObj.has("ul"))
{ {
String fileUrl = tempJsonObj.getString("ul"); String fileUrl = tempJsonObj.getString("ul");
fileUrl = FILEDET_URL + fileUrl; fileUrl = BASE_API_URL + fileUrl;
System.out.println("fileUrl["+fileUrl+"]");
URL url = new URL(fileUrl); URL url = new URL(fileUrl);
HttpURLConnection connection = (HttpURLConnection) url.openConnection(); HttpURLConnection connection = (HttpURLConnection) url.openConnection();
......
This source diff could not be displayed because it is too large. You can view the blob instead.
package ibase.webitm.util.gst;
import java.io.File;
import java.io.IOException;
import java.net.URL;
import java.util.Iterator;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.github.fge.jackson.JsonLoader;
import com.github.fge.jsonschema.core.exceptions.ProcessingException;
import com.github.fge.jsonschema.core.report.ProcessingMessage;
import com.github.fge.jsonschema.core.report.ProcessingReport;
import com.github.fge.jsonschema.main.JsonSchema;
import com.github.fge.jsonschema.main.JsonSchemaFactory;
public class JsonDataValidator
{
public static final String JSON_V4_SCHEMA_IDENTIFIER = "http://json-schema.org/draft-04/schema#";
public static final String JSON_SCHEMA_IDENTIFIER_ELEMENT = "$schema";
public static JsonNode getJsonNode(String jsonText) throws IOException
{
return JsonLoader.fromString(jsonText);
} // getJsonNode(text) ends
public static JsonNode getJsonNode(File jsonFile) throws IOException
{
return JsonLoader.fromFile(jsonFile);
} // getJsonNode(File) ends
public static JsonNode getJsonNode(URL url) throws IOException
{
return JsonLoader.fromURL(url);
} // getJsonNode(URL) ends
public static JsonNode getJsonNodeFromResource(String resource) throws IOException
{
return JsonLoader.fromResource(resource);
} // getJsonNode(Resource) ends
public static JsonSchema getSchemaNode(String schemaText) throws IOException, ProcessingException
{
final JsonNode schemaNode = getJsonNode(schemaText);
return _getSchemaNode(schemaNode);
} // getSchemaNode(text) ends
public static JsonSchema getSchemaNode(File schemaFile) throws IOException, ProcessingException
{
final JsonNode schemaNode = getJsonNode(schemaFile);
return _getSchemaNode(schemaNode);
} // getSchemaNode(File) ends
public static JsonSchema getSchemaNode(URL schemaFile) throws IOException, ProcessingException
{
final JsonNode schemaNode = getJsonNode(schemaFile);
return _getSchemaNode(schemaNode);
} // getSchemaNode(URL) ends
public static JsonSchema getSchemaNodeFromResource(String resource) throws IOException, ProcessingException
{
final JsonNode schemaNode = getJsonNodeFromResource(resource);
return _getSchemaNode(schemaNode);
} // getSchemaNode() ends
public static void validateJson(JsonSchema jsonSchemaNode, JsonNode jsonNode) throws ProcessingException
{
ProcessingReport report = jsonSchemaNode.validate(jsonNode);
if (!report.isSuccess()) {
for (ProcessingMessage processingMessage : report) {
throw new ProcessingException(processingMessage);
}
}
} // validateJson(Node) ends
public static String isJsonValid(JsonSchema jsonSchemaNode, JsonNode jsonNode) throws ProcessingException
{
String retMessage = "";
ProcessingReport report = jsonSchemaNode.validate(jsonNode);
if (!report.isSuccess())
{
for (ProcessingMessage processingMessage : report)
{
JsonNode errorJson = processingMessage.asJson();
if(errorJson.has("reports"))
{
JsonNode tempJsonObj = errorJson.get("reports");
Iterator<String> fldNames = tempJsonObj.fieldNames();
while(fldNames.hasNext())
{ String key = fldNames.next();
JsonNode tempMessageErrNode = tempJsonObj.get(key);
if(tempMessageErrNode.get(0).has("message"))
{
System.out.println("message : "+tempMessageErrNode.get(0).get("message"));
retMessage += tempMessageErrNode.get(0).get("message").toString()+"\n";
}
}
}
else if(errorJson.has("message"))
{
System.out.println("message : "+errorJson.get("message"));
retMessage += errorJson.get("message").toString()+"\n";
}
}
}
System.out.println("json validatoin message["+retMessage+"]");
return retMessage;
} // validateJson(Node) ends
public static String isJsonValid(String schemaText, String jsonText) throws ProcessingException, IOException
{
final JsonSchema schemaNode = getSchemaNode(schemaText);
final JsonNode jsonNode = getJsonNode(jsonText);
return isJsonValid(schemaNode, jsonNode);
} // validateJson(Node) ends
public static String isJsonValid(File schemaFile, File jsonFile) throws ProcessingException, IOException
{
final JsonSchema schemaNode = getSchemaNode(schemaFile);
final JsonNode jsonNode = getJsonNode(jsonFile);
return isJsonValid(schemaNode, jsonNode);
} // validateJson(Node) ends
public static String isJsonValid(URL schemaURL, URL jsonURL) throws ProcessingException, IOException
{
final JsonSchema schemaNode = getSchemaNode(schemaURL);
final JsonNode jsonNode = getJsonNode(jsonURL);
return isJsonValid(schemaNode, jsonNode);
} // validateJson(Node) ends
public static void validateJson(String schemaText, String jsonText) throws IOException, ProcessingException{
final JsonSchema schemaNode = getSchemaNode(schemaText);
final JsonNode jsonNode = getJsonNode(jsonText);
validateJson(schemaNode, jsonNode);
} // validateJson(text) ends
public static void validateJson(File schemaFile, File jsonFile) throws IOException, ProcessingException{
final JsonSchema schemaNode = getSchemaNode(schemaFile);
final JsonNode jsonNode = getJsonNode(jsonFile);
validateJson(schemaNode, jsonNode);
} // validateJson(File) ends
public static void validateJson(URL schemaDocument, URL jsonDocument) throws IOException, ProcessingException{
final JsonSchema schemaNode = getSchemaNode(schemaDocument);
final JsonNode jsonNode = getJsonNode(jsonDocument);
validateJson(schemaNode, jsonNode);
} // validateJson(URL) ends
public static void validateJsonResource(String schemaResource, String jsonResource) throws IOException, ProcessingException{
final JsonSchema schemaNode = getSchemaNode(schemaResource);
final JsonNode jsonNode = getJsonNodeFromResource(jsonResource);
validateJson(schemaNode, jsonNode);
} // validateJsonResource() ends
private static JsonSchema _getSchemaNode(JsonNode jsonNode) throws ProcessingException
{
final JsonNode schemaIdentifier = jsonNode.get(JSON_SCHEMA_IDENTIFIER_ELEMENT);
if (null == schemaIdentifier)
{
((ObjectNode) jsonNode).put(JSON_SCHEMA_IDENTIFIER_ELEMENT, JSON_V4_SCHEMA_IDENTIFIER);
}
final JsonSchemaFactory factory = JsonSchemaFactory.byDefault();
return factory.getJsonSchema(jsonNode);
} // _getSchemaNode() ends
}
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