/** * Walk down the JSON nodes specified by the path and retrieve the target * JsonObject. * * @param path : Variable length array of path segments * @return JsonObject : The target node, or NULL if path invalid or not an * object */ @Override public JsonObject getObject(Object... path) { JsonObject object = super.getObject(path); if (object == null && systemConfig != null) { return systemConfig.getObject(path); } return object; }
@Override public void renderCsv(Writer writer, String chartKey) throws IOException, IndexerException { Map<Integer, Integer> countMap = getData(); writer.write("Chart Name,Records Published by Month"); writer.write(System.getProperty("line.separator")); writer.write("Date From,"); writer.write(dateFromStr); writer.write(System.getProperty("line.separator")); writer.write("Date To,"); writer.write(dateToStr); writer.write(System.getProperty("line.separator")); JsonObject labelConfig = systemConfig.getObject("charts", chartKey, "csv-field-label"); Integer[] flds = new Integer[]{Calendar.JANUARY, Calendar.FEBRUARY, Calendar.MARCH, Calendar.APRIL, Calendar.MAY, Calendar.JUNE, Calendar.JULY, Calendar.AUGUST, Calendar.SEPTEMBER, Calendar.OCTOBER, Calendar.NOVEMBER, Calendar.DECEMBER}; for (Integer fldKey : flds) { writer.write(getLabel(String.valueOf(fldKey), labelConfig)); writer.write(","); writer.write((countMap.get(fldKey) == null ? "0" : countMap.get(fldKey).toString())); writer.write(System.getProperty("line.separator")); } }
@Override public void renderCsv(Writer writer, String chartKey) throws IOException, IndexerException { Map<String, Integer> stepCountMap = getData(); writer.write("Chart Name,"); writer.write(headerStr); writer.write(System.getProperty("line.separator")); writer.write("Date From,"); writer.write(dateFromStr); writer.write(System.getProperty("line.separator")); writer.write("Date To,"); writer.write(dateToStr); writer.write(System.getProperty("line.separator")); JsonObject labelConfig = systemConfig.getObject("charts", chartKey, "csv-field-label"); String[] flds = new String[]{"inbox", "investigation", "metadata-review", "final-review", "live", "retired"}; for (String fldKey : flds) { writer.write(getLabel(fldKey, labelConfig)); writer.write(","); writer.write(stepCountMap.get(fldKey).toString()); writer.write(System.getProperty("line.separator")); } }
@Override public void renderCsv(Writer writer, String chartKey) throws IOException, IndexerException { Map<String, Map<String, Integer>> countMap = getData(); writer.write("Chart Name,Record Type by Workflow Stage"); writer.write(System.getProperty("line.separator")); writer.write("Date From,"); writer.write(dateFromStr); writer.write(System.getProperty("line.separator")); writer.write("Date To,"); writer.write(dateToStr); writer.write(System.getProperty("line.separator")); JsonObject labelConfig = systemConfig.getObject("charts", chartKey, "csv-field-label"); String[] flds = new String[]{"inbox", "investigation", "metadata-review", "final-review", "live", "retired"}; String[] subFlds = new String[]{"catalogueOrIndex", "repository", "dataset", "collection", "registry"}; for (String fldKey : flds) { for (String key : subFlds ) { writer.write(getLabel(fldKey, labelConfig)); writer.write(","); writer.write(getLabel(key, labelConfig)); writer.write(","); writer.write(countMap.get(fldKey).get(key).toString()); writer.write(System.getProperty("line.separator")); } } }
/** * Generates the report specific query from parameters */ @Override public String getQueryAsString() { String query = ""; JsonObject queryFilters = config.getObject("query", "filter"); String[] keyArray = Arrays.copyOf( new ArrayList<Object>(queryFilters.keySet()).toArray(), queryFilters.keySet().size(), String[].class); List<String> keys = Arrays.asList(keyArray); java.util.Collections.sort(keys); query += processDateCriteria(queryFilters); query += processShowCriteria(queryFilters); return query; }
/** * Trivial wrapper on the JsonConfigHelper getMap() method to cast all map * entries to strings if appropriate and return. * * @param json The json object to query. * @param path The path on which the map is found. * @return Map<String, String>: The object map cast to Strings */ private Map<String, String> getStringMap(JsonSimple json, String... path) { Map<String, String> response = new LinkedHashMap<String, String>(); JsonObject object = json.getObject((Object[]) path); if (object == null) { return null; } for (Object key : object.keySet()) { Object value = object.get(key); if (value instanceof String) { response.put((String) key, (String) value); } } return response; }
/** * Trivial wrapper on the JsonConfigHelper getMap() method to cast all map * entries to strings if appropriate and return. * * @param json : The json object to query. * @param path : The path on which the map is found. * @return Map<String, String>: The object map cast to Strings */ private Map<String, String> getStringMap(JsonSimple json, String... path) { Map<String, String> response = new LinkedHashMap(); JsonObject object = json.getObject((Object[]) path); if (object == null) { return null; } for (Object key : object.keySet()) { Object value = object.get(key); if (value instanceof String) { response.put((String) key, (String) value); } } return response; }
/** * <p> * Retrieve a map of JsonSimple objects found on the given path. Note that * this is a utility function, and not designed for data traversal. It * <b>will</b> only retrieve valid JsonObjects found on the provided node, * and wrap them in JsonSimple objects. * </p> * * <p> * Other objects found on that path will be ignored, and if the path itself * is not a JsonObject or not found, the function will return NULL. * </p> * * @param path : An array of indeterminate length to use as the path * @return Map<String, JsonSimple> : A map of JSONSimple objects, or null */ public Map<String, JsonSimple> getJsonSimpleMap(Object... path) { JsonObject object = getObject(path); if (isObject(object)) { return JsonSimple.toJavaMap(object); } return null; }
writer.write(dateToStr); writer.write(System.getProperty("line.separator")); JsonObject labelConfig = systemConfig.getObject("charts", chartKey, "csv-field-label"); writer.write(getLabel("party", labelConfig)); writer.write(",");
/** * Generates the report specific query from parameters */ @Override public String getQueryAsString() { String query = ""; JsonObject queryFilters = config.getObject("query", "filter"); String[] keyArray = Arrays.copyOf( new ArrayList<Object>(queryFilters.keySet()).toArray(), queryFilters.keySet().size(), String[].class); List<String> keys = Arrays.asList(keyArray); java.util.Collections.sort(keys); reportCriteriaOptionsJson.getArray("results"); query += processDateCriteria(queryFilters); query += processShowCriteria(queryFilters); int i = 1; /*while (true) { if (keys.indexOf("report-criteria." + i + ".dropdown") == -1) { break; } query += processReportCriteria(queryFilters, i); i++; }*/ query += " AND workflow_id:dataset"; return query; }
JsonObject message = order.getObject("message"); if (message == null) { log.error("Invalid subscriber order, no message object supplied!");
JsonObject config = order.getObject("config"); if (config == null) { log.warn("Expected some configuration for Transformer,"
JsonObject message = order.getObject("message"); if (message == null) { log.error("Invalid message order, no message text supplied!");
objectMetadata.setProperty("jsonConfigPid", rulesConfigObject.getSourceId()); JsonObject params = rulesConfigJson.getObject("indexer", "params"); if (params != null) { for (Object key : params.keySet()) {
/** * Generate orders for the list of normal transformers scheduled to execute * on the tool chain * * @param message The incoming message, which contains the tool chain config * for this object * @param response The response to edit * @param oid The object to schedule for clearing */ private void scheduleTransformers(JsonSimple message, JsonSimple response) { String oid = message.getString(null, "oid"); List<String> list = message.getStringList( "transformer", "metadata"); if (list != null && !list.isEmpty()) { for (String id : list) { JsonObject order = newTransform(response, id, oid); // Add item config to message... if it exists JsonObject itemConfig = message.getObject( "transformerOverrides", id); if (itemConfig != null) { JsonObject config = (JsonObject) order.get("config"); config.putAll(itemConfig); } } } }
/** * Generate orders for the list of normal transformers scheduled to execute * on the tool chain * * @param message * The incoming message, which contains the tool chain config for * this object * @param response * The response to edit * @param oid * The object to schedule for clearing */ private void scheduleTransformers(JsonSimple message, JsonSimple response) { String oid = message.getString(null, "oid"); List<String> list = message.getStringList("transformer", "metadata"); if (list != null && !list.isEmpty()) { for (String id : list) { JsonObject order = newTransform(response, id, oid); // Add item config to message... if it exists JsonObject itemConfig = message.getObject( "transformerOverrides", id); if (itemConfig != null) { JsonObject config = (JsonObject) order.get("config"); config.putAll(itemConfig); } } } }
JsonObject order = newTransform(response, id, oid); JsonObject config = (JsonObject) order.get("config"); JsonObject overrides = itemConfig.getObject( "transformerOverrides", id); if (overrides != null) {
JsonObject order = newTransform(response, id, oid); JsonObject config = (JsonObject) order.get("config"); JsonObject overrides = itemConfig.getObject( "transformerOverrides", id); if (overrides != null) {
public SearchCriteriaListing(RedboxReport rb, JsonSimple config, String strDateFormat, String solrDateFormat) { JsonObject queryFilters = config.getObject("query", "filter"); String[] keyArray = Arrays.copyOf( new ArrayList<Object>(queryFilters.keySet()).toArray(),
objectMetadata.setProperty("jsonConfigPid", rulesConfigObject.getSourceId()); JsonObject params = rulesConfigJson.getObject("indexer", "params"); if (params != null) { for (Object key : params.keySet()) {