@Override public void remove(String raptureURI) { api.getDoc().deleteDoc(raptureURI); }
@Override public List<Map<String, Object>> batchPullData(List<String> displayNames) { // Run in batches of 50 List<String> content = new ArrayList<String>(); List<List<String>> batches = getBatches(displayNames, 50); for (List<String> batch : batches) { List<String> batchDisplayNames = new ArrayList<String>(); for (String disp : batch) { disp = URIParser.convertDocURI(disp); batchDisplayNames.add(disp); } Map<String, String> contents = api.getDoc().getDocs(batchDisplayNames); content.addAll(contents.values()); } List<Map<String, Object>> ret = new ArrayList<Map<String, Object>>(); for (String c : content) { ret.add((Map<String, Object>) JacksonUtil.getMapFromJson(c)); } return ret; }
@Override public String rawPushData(String raptureURI, String content) { raptureURI = URIParser.convertDocURI(raptureURI); String ret = api.getDoc().putDoc(raptureURI, content); return ret; }
@Override public Map<String, Object> pullData(String raptureURI) { raptureURI = URIParser.convertDocURI(raptureURI); String content = api.getDoc().getDoc(raptureURI); if (content != null) { return (Map<String, Object>) JacksonUtil.getMapFromJson(content); } else { return null; } }
@Override public List<String> batchPushRawData(List<String> displayNames, List<String> datas) { List<List<String>> displayBatches = TypeUtil.getBatches(displayNames, 50); List<List<String>> dataBatches = TypeUtil.getBatches(datas, 50); List<String> ret = new ArrayList<String>(); for (int i = 0; i < displayBatches.size(); i++) { List<String> batchDisplayNames = displayBatches.get(i); List<String> dataBatch = dataBatches.get(i); List<String> parsedDisplayNames = new ArrayList<String>(); for (String disp : batchDisplayNames) { disp = URIParser.convertDocURI(disp); parsedDisplayNames.add(disp); } api.getDoc().putDocs(parsedDisplayNames, dataBatch); ret.addAll(parsedDisplayNames); } return ret; }
@Override public Map<String, Object> metaPullData(String raptureURI) { raptureURI = URIParser.convertDocURI(raptureURI); DocumentWithMeta content = api.getDoc().getDocAndMeta(raptureURI); if (content == null) { return null; } else { Map<String, Object> ret = new HashMap<String, Object>(); ret.put("meta", JacksonUtil.getHashFromObject(content.getMetaData())); ret.put("content", (Map<String, Object>) JacksonUtil.getMapFromJson(content.getContent())); return ret; } }
@Override public Map<String, Object> pullData(String raptureURI) { raptureURI = URIParser.convertDocURI(raptureURI); String content = api.getDoc().getDoc(raptureURI); if (content == null) { return null; } else { return (Map<String, Object>) JacksonUtil.getMapFromJson(content); } }
@Override public List<String> batchPushRawData(List<String> displayNames, List<String> datas) { if (displayNames.size() != datas.size()) { throw RaptureExceptionFactory.create(HttpURLConnection.HTTP_INTERNAL_ERROR, "Batch push raw data and display different sizes. Data is " + datas.size() + ", displays are " + displayNames.size()); } List<List<String>> displayBatches = TypeUtil.getBatches(displayNames, 50); List<List<String>> dataBatches = TypeUtil.getBatches(datas, 50); List<String> ret = new ArrayList<String>(); for (int i = 0; i < displayBatches.size(); i++) { List<String> batchDisplayNames = displayBatches.get(i); List<String> dataBatch = dataBatches.get(i); List<String> parsedDisplayNames = new ArrayList<String>(); for (String disp : batchDisplayNames) { disp = URIParser.convertDocURI(disp); parsedDisplayNames.add(disp); } api.getDoc().putDocs( parsedDisplayNames, dataBatch); ret.addAll(parsedDisplayNames); } return ret; }
@Override public Map<String, Object> metaPullData(String raptureURI) { raptureURI = URIParser.convertDocURI(raptureURI); DocumentWithMeta content = api.getDoc().getDocAndMeta(raptureURI); if (content == null) { return null; } else { Map<String, Object> ret = new HashMap<String, Object>(); ret.put("meta", JacksonUtil.getHashFromObject(content.getMetaData())); ret.put("content", (Map<String, Object>) JacksonUtil.getMapFromJson(content.getContent())); return ret; } }
@Override public String rawPushData(String raptureURI, String content) { raptureURI = URIParser.convertDocURI(raptureURI); String ret = api.getDoc().putDoc(raptureURI, content); return ret; }
public ReflexValue pullData(RaptureURI uri) { switch (uri.getScheme()) { case DOCUMENT: String strContent = api.getDoc().getDoc(uri.toString()); return (strContent == null) ? new ReflexNullValue()
@Override public List<String> batchPushData(List<String> displayNames, List<Map<String, Object>> datas) { List<List<String>> displayBatches = TypeUtil.getBatches(displayNames, 50); List<List<Map<String, Object>>> dataBatches = TypeUtil.getBatches(datas, 50); List<String> ret = new ArrayList<String>(); for (int i = 0; i < displayBatches.size(); i++) { List<String> batchDisplayNames = displayBatches.get(i); List<Map<String, Object>> dataBatch = dataBatches.get(i); List<String> parsedDisplayNames = new ArrayList<String>(); List<String> contents = new ArrayList<String>(); int point = 0; for (String disp : batchDisplayNames) { disp = URIParser.convertDocURI(disp); parsedDisplayNames.add(disp); contents.add(JacksonUtil.jsonFromObject(dataBatch.get(point))); point++; } api.getDoc().putDocs(parsedDisplayNames, contents); ret.addAll(parsedDisplayNames); } return ret; }
@Override public void remove(String raptureURI) { raptureURI = URIParser.convertDocURI(raptureURI); api.getDoc().deleteDoc(raptureURI); }
@Override public List<Map<String, Object>> batchPullData(List<String> displayNames) { // Run in batches of 50 List<String> content = new ArrayList<String>(); List<List<String>> batches = StringUtil.getBatches(displayNames, 50); for (List<String> batch : batches) { List<String> batchDisplayNames = new ArrayList<String>(); for (String disp : batch) { disp = URIParser.convertDocURI(disp); batchDisplayNames.add(disp); } Map<String, String> contents = api.getDoc().getDocs(batchDisplayNames); content.addAll(contents.values()); } List<Map<String, Object>> ret = new ArrayList<Map<String, Object>>(); for (String c : content) { ret.add((Map<String, Object>) JacksonUtil.getMapFromJson(c)); } return ret; }
@Override public String pushData(String raptureURI, Map<String, Object> data) { raptureURI = URIParser.convertDocURI(raptureURI); data = KernelExecutor.convert(data); System.out.println("Data is " + data); try { String content = JacksonUtil.jsonFromObject(data); String ret = api.getDoc().putDoc(raptureURI, content); return ret; } catch (Exception e) { e.printStackTrace(); return ""; } }
@Override public ReflexValue evaluate(IReflexDebugger debugger, Scope scope) { debugger.stepStart(this, scope); ReflexValue uriVal = uri.evaluate(debugger, scope); ReflexValue optionsVal = options == null ? new ReflexValue(new HashMap<String, Object>()) : options.evaluate( debugger, scope); ReflexValue retVal = new ReflexNullValue(lineNumber); RaptureURI uri = new RaptureURI(uriVal.asString()); switch (uri.getScheme()) { case DOCUMENT: // Return a document as a map String content = handler.getApi().getDoc().getDoc(uri.getFullPath()); retVal = new ReflexValue(JacksonUtil.getMapFromJson(content)); case SERIES: // Return all the elements of the series as a sparse matrix retVal = getSeriesMatrix(uriVal.asString(), optionsVal); break; default: break; } debugger.stepEnd(this, retVal, scope); return retVal; }
@Override public List<String> batchPushData(List<String> displayNames, List<Map<String, Object>> datas) { if (displayNames.size() != datas.size()) { throw RaptureExceptionFactory.create(HttpURLConnection.HTTP_INTERNAL_ERROR, "Batch push data and display different sizes. Data is " + datas.size() + ", displays are " + displayNames.size()); } List<List<String>> displayBatches = TypeUtil.getBatches(displayNames, 50); List<List<Map<String, Object>>> dataBatches = TypeUtil.getBatches(datas, 50); List<String> ret = new ArrayList<String>(displayBatches.size()); for (int i = 0; i < displayBatches.size(); i++) { List<String> batchDisplayNames = displayBatches.get(i); List<Map<String, Object>> dataBatch = dataBatches.get(i); List<String> parsedDisplayNames = new ArrayList<String>(batchDisplayNames.size()); List<String> contents = new ArrayList<String>(batchDisplayNames.size()); int point = 0; for (String disp : batchDisplayNames) { disp = URIParser.convertDocURI(disp); parsedDisplayNames.add(disp); contents.add(JacksonUtil.jsonFromObject(dataBatch.get(point))); point++; } api.getDoc().putDocs(parsedDisplayNames, contents); ret.addAll(parsedDisplayNames); } return ret; }
@Override public String pushData(String raptureURI, Map<String, Object> data) { raptureURI = URIParser.convertDocURI(raptureURI); String content = JacksonUtil.jsonFromObject(data); return api.getDoc().putDoc(raptureURI, content); }
} else throw new ReflexException(-1, "Cannot write " + data.getTypeAsString() + " to " + uri); api.getDoc().putDoc(uriStr, JacksonUtil.prettyfy(JacksonUtil.jsonFromObject(map))); break;
@Override public ReflexValue evaluate(IReflexDebugger debugger, Scope scope) { debugger.stepStart(this, scope); ReflexValue uriVal = uri.evaluate(debugger, scope); ReflexValue val = value.evaluate(debugger, scope); ReflexValue retVal = new ReflexVoidValue(lineNumber); RaptureURI uri = new RaptureURI(uriVal.asString()); switch (uri.getScheme()) { case DOCUMENT: // retVal is a map, push the content handler.getApi().getDoc().putDoc(uriVal.asString(), JacksonUtil.jsonFromObject(val.asMap())); case SERIES: // Return all the elements of the series as a sparse matrix putSeriesMatrix(uriVal.asString(), val); break; default: break; } debugger.stepEnd(this, retVal, scope); return retVal; }