Skip to content
Snippets Groups Projects
Commit 1f80727a authored by Robert Butora's avatar Robert Butora
Browse files

replaces DataLink -> MCutResult in doMCutout

parent 281a1523
No related branches found
No related tags found
No related merge requests found
class MCutResult
{
class Cut
{
public enum ContentType {FILENAME, BAD_REQUEST, SERVICE_ERROR};
public Inputs inputs;
......@@ -10,3 +12,9 @@ class MCutResult
public String content;
}
public String fileName;
public long fileSize;
Cut[] cutResArr;
}
......@@ -16,7 +16,7 @@ public interface Datasets
throws FileNotFoundException, IOException;
public DataLink doMCutout(String jdlJson)
public MCutResult doMCutout(String jdlJson)
throws IOException;
}
......
......@@ -67,7 +67,7 @@ class DatasetsImpl implements Datasets
public DataLink doMCutout(String jdlJson)
public MCutResult doMCutout(String jdlJson)
throws IOException
{
LOGGER.info("trace");
......
......@@ -101,11 +101,11 @@ public class JdlMCutout
public static DataLink responseFromMCutoutJson(String response)
public static MCutResult responseFromMCutoutJson(String response)
// throws ParseException
{
DataLink dlk = new DataLink();
MCutResult cuts = new MCutResult();
try {
JSONParser parser = new JSONParser();
Object jsonObj = parser.parse(response);
......@@ -132,7 +132,7 @@ public class JdlMCutout
JSONArray jsonArray = (JSONArray)jsonObject.get("responses");
MCutResult[] mcutResArr = new MCutResult[jsonArray.size()];
MCutResult.Cut[] cutResArr = new MCutResult.Cut[jsonArray.size()];
int i = 0;
@SuppressWarnings("unchecked")
......@@ -141,21 +141,21 @@ public class JdlMCutout
{
JSONObject jObj = itr.next();
mcutResArr[i].inputs = (Inputs)jObj.get("input");
cutResArr[i].inputs = (Inputs)jObj.get("input");
String ctype = (String)jObj.get("type");
if(ctype.equals("FILENAME"))
mcutResArr[i].contentType = MCutResult.ContentType.FILENAME;
cutResArr[i].contentType = MCutResult.Cut.ContentType.FILENAME;
else if(ctype.equals("BAD_REQUEST"))
mcutResArr[i].contentType = MCutResult.ContentType.BAD_REQUEST;
cutResArr[i].contentType = MCutResult.Cut.ContentType.BAD_REQUEST;
else if(ctype.equals("SERVICE_ERROR"))
mcutResArr[i].contentType = MCutResult.ContentType.SERVICE_ERROR;
mcutResArr[i].content = (String)jObj.get("content");
cutResArr[i].contentType = MCutResult.Cut.ContentType.SERVICE_ERROR;
cutResArr[i].content = (String)jObj.get("content");
i++;
}
dlk.contentLength = fileSize;
dlk.accessUrl = fileName;
dlk.mcutResultArr = mcutResArr;
cuts.fileSize = fileSize;
cuts.fileName = fileName;
cuts.cutResArr = cutResArr;
}
}
catch (ParseException e)
......@@ -163,7 +163,7 @@ public class JdlMCutout
e.printStackTrace();
throw new IllegalStateException("Internal system error.");
}
return dlk;
return cuts;
}
......
......@@ -14,13 +14,13 @@ import org.json.simple.parser.ParseException;
//
// 1. exception (decoded inside 2 3)
//
// 2. response from cutout: struct cutout_res_s --> DataLink
// 2. response from cutout: struct cutout_res_s --> CutResult
// .filesize
// .filename
// .nullval_count : {fill_ratio null_count total_count}
//
// NOTE: MCutout moved to -> dacc/JdlMCutout.java
// 3. response from mcutout: struct mcutout_res_s --> DataLink
// 3. response from mcutout: struct mcutout_res_s --> MCutResult
// .filesize
// .tgz_filename
// .cut_resp_s[] : {cut_param_s content_type content}
......
......@@ -96,7 +96,8 @@ public class ServletMCutout extends javax.servlet.http.HttpServlet
OutputStream respOutputStream = response.getOutputStream();
DataLink dlk = datasets.doMCutout(reqJsonString);
MCutResult mCutRes = datasets.doMCutout(reqJsonString);
DataLink dlk = new DataLink(mCutRes);
final String contentType = "text/xml"; // FIXME
final String respEncoding = "utf-8"; // FIXME
......
......@@ -83,7 +83,8 @@ public class UWSMCutoutWork extends JobThread
/* SODA -> Implementation */
DataLink dlk = datasets.doMCutout(reqJsonString);
MCutResult mCutResults = datasets.doMCutout(reqJsonString);
DataLink dlk = new DataLink(mCutResults);
/* Implement -> SODA */
......
......@@ -11,23 +11,23 @@ class DataLink
/* DataLink fields */
String id;
String accessUrl;
String accessUrl; // MX
String serviceDef;
String errorMessage;
String description;
String description; // X
String semantics;
String contentType;
long contentLength;
long contentLength; // MX
/* legacy-VLKB fields */
Inputs inputs;
String versionString;
String cut;
String absCutPathname;
String absCutPathname; // ServeltCutout uses
int datacubeCount;
NullValueCount nullVals;
MCutResult[] mcutResultArr;
MCutResult.Cut[] mcutResultArr;
public DataLink()
......@@ -62,6 +62,31 @@ class DataLink
this.mcutResultArr = null;
}
public DataLink(MCutResult cutResult)
{
this.nullVals = new NullValueCount();
this.id = "_PIXEL_BOUNDS";
this.accessUrl = cutResult.fileName; // FIXME filename ->> remoteUrl
this.serviceDef = null;
this.errorMessage = null;
this.description = "cutout_from ID";
this.semantics = "FIXME find in IVOA docs...";
this.contentType = "application/fits";
this.contentLength = cutResult.fileSize;
// VLKB-extension to DataLink:
this.inputs = null;
this.versionString = Version.asString;
this.cut = null;
this.absCutPathname = cutResult.fileName;
this.datacubeCount = 1;
this.nullVals = null;
this.mcutResultArr = cutResult.cutResArr;
}
public String convertLocalPathnameToRemoteUrl(String localPathname, String FITScutpath, String FITSRemoteUrlCutouts)
{
String filename = localPathname.replaceAll(FITScutpath + "/", "");
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment