diff --git a/data-access/servlet/src/main/java/cutout/json/JdlMCutout.java b/data-access/servlet/src/main/java/cutout/json/JdlMCutout.java index 432910febe1e8f796ed4e8abb9d7470ddc33405c..e3e7d10c986478f2a8efe8be4f19fe98ee5f0703 100644 --- a/data-access/servlet/src/main/java/cutout/json/JdlMCutout.java +++ b/data-access/servlet/src/main/java/cutout/json/JdlMCutout.java @@ -1,5 +1,8 @@ +import java.util.logging.Logger; + import java.util.Iterator; +import java.util.ArrayList; /* 'JSON-Simple' library */ import org.json.simple.JSONArray; import org.json.simple.JSONObject; @@ -9,7 +12,7 @@ import org.json.simple.parser.ParseException; public class JdlMCutout { - + static final Logger LOGGER = Logger.getLogger("JdlMCutout"); /* used in mcutout to resolve pubdids to pathanme+hdunum */ @@ -33,7 +36,7 @@ public class JdlMCutout FitsCard[] extraCards = null; Resolver rsl = new ResolverFromId();//settings.dbConn, subsurveys); - //ResolverByObsCore rsl = new ResolverByObsCore(settings.dbConn, subsurveys); + //ResolverByObsCore rsl = new ResolverByObsCore(settings.dbConn, subsurveys); rsl.resolve(publisherDid); extraCards = null;// Subsurvey.subsurveysFindCards(subsurveys, rsl.obsCollection());//subsurveyId); @@ -89,12 +92,13 @@ public class JdlMCutout return ""; } - JSONObject objParameters = new JSONObject(); - objParameters.put("cuts", arrCuts); + //JSONObject objParameters = new JSONObject(); + //objParameters.put("cuts", arrCuts); JSONObject obj = new JSONObject(); obj.put("service", "MCUTOUT"); - obj.put("parameters", objParameters); + //obj.put("parameters", objParameters); + obj.put("cuts", arrCuts); return obj.toJSONString(); } @@ -133,30 +137,42 @@ public class JdlMCutout JSONArray jsonArray = (JSONArray)jsonObject.get("responses"); - MCutResult.Cut[] cutResArr = new MCutResult.Cut[jsonArray.size()]; + LOGGER.info("jsonArray.size [responses]: " + jsonArray.size()); + //MCutResult.Cut[] cutResArr = new MCutResult.Cut[jsonArray.size()]; + //LOGGER.info("cutResArr.length[responses]: " + cutResArr.length); + + ArrayList<MCutResult.Cut> cutResList = new ArrayList<MCutResult.Cut>(); int i = 0; @SuppressWarnings("unchecked") Iterator<JSONObject> itr = jsonArray.iterator(); while (itr.hasNext()) { + LOGGER.info("i: " + String.valueOf(i)); JSONObject jObj = itr.next(); - cutResArr[i].inputs = (Inputs)jObj.get("input"); + MCutResult mc = new MCutResult(); + MCutResult.Cut cut = mc.new Cut(); + + cut.inputs = null;//(Inputs)jObj.get("input"); String ctype = (String)jObj.get("type"); if(ctype.equals("FILENAME")) - cutResArr[i].contentType = MCutResult.Cut.ContentType.FILENAME; + cut.contentType = MCutResult.Cut.ContentType.FILENAME; else if(ctype.equals("BAD_REQUEST")) - cutResArr[i].contentType = MCutResult.Cut.ContentType.BAD_REQUEST; + cut.contentType = MCutResult.Cut.ContentType.BAD_REQUEST; else if(ctype.equals("SERVICE_ERROR")) - cutResArr[i].contentType = MCutResult.Cut.ContentType.SERVICE_ERROR; - cutResArr[i].content = (String)jObj.get("content"); + cut.contentType = MCutResult.Cut.ContentType.SERVICE_ERROR; + + cut.content = (String)jObj.get("content"); + cut.index = i;// FIXME should come from inputs ? + cutResList.add(cut); i++; } cuts.fileSize = fileSize; cuts.fileName = fileName; - cuts.cutResArr = cutResArr; + cuts.cutResArr = cutResList.toArray(new MCutResult.Cut[0]);//cutResArr; + LOGGER.info("cuts.cutResArr.length[responses]: " + cuts.cutResArr.length); } } catch (ParseException e)