@Override protected void onInit(final JSONValue data) { try { final JSONArray criteria = data.isArray(); this.criteria.clear(); for (int i = 0; i < criteria.size(); i++) { final JSONObject searchTypeJSON = criteria.get(i).isObject(); final Map<String, Criterion> searchType = new LinkedHashMap<String, Criterion>(); for (int j = 0; j < searchTypeJSON.get("elements").isArray().size(); j++) { final Criterion criterion = Criterion.readMe(j, searchTypeJSON); if (j == 0 && (selectedCriterion == null && i == 0 || selectedCriterion != null && criterion.displaytype.equalsIgnoreCase(selectedCriterion.displaytype))) { selectedCriterion = criterion; selectedCriterionHistory.put(selectedCriterion.displaytype, selectedCriterion); } searchType.put(criterion.getName(), criterion); } this.criteria.put( searchTypeJSON.get("displaytype").isString().stringValue().trim(), searchType); } } catch (final Exception e) { getLogger().severe(getClass().getName().replace("Impl", "") + ".onInit() : " + e); } }
private JSONValue toJson() { final JSONObject data = null == restoreddata ? new JSONObject() : restoreddata; try { data.put("historyversion", new JSONString(SearchPanelModel.historyversion)); data.put("selectedtype", new JSONString(selectedCriterion.displaytype)); final Iterator<String> iter = criteria.keySet().iterator(); while (iter.hasNext()) { final String searchTypeKey = iter.next(); if (!selectedCriterionHistory.containsKey(searchTypeKey)) { continue; } final JSONObject searchdata = new JSONObject(); final JSONObject userdata = new JSONObject(); searchdata.put(Context.get().getChallengeLogin().toLowerCase(), userdata); userdata.put( "selectedcriterion", new JSONString(selectedCriterionHistory.get(searchTypeKey).getName())); final JSONObject criteriadata = new JSONObject(); for (final Criterion criterion : criteria.get(searchTypeKey).values()) { final String s = CriterionHistory.Writer.toJson(criterion.getHistory()); criteriadata.put(criterion.getName(), JSONParser.parseStrict(s)); } userdata.put("criteria", criteriadata); if (searchhistory.containsKey(searchTypeKey)) { userdata.put( "searchhistory", JSONParser.parseStrict( SearchHistory.Writer.toJson(searchhistory.get(searchTypeKey)))); } if (accesshistory.containsKey(searchTypeKey)) { userdata.put( "accesshistory", JSONParser.parseStrict( AccessHistory.Writer.toJson(accesshistory.get(searchTypeKey)))); } data.put(selectedCriterionHistory.get(searchTypeKey).getType().toLowerCase(), searchdata); } } catch (final Exception e) { getLogger().severe("SearchModel.toJson() : " + e); } return data; }
public Criterion getParentCriterion(Criterion goal, String criterionName) { if (goal.getName().equals(criterionName)) return null; return goal.getParentCriterion(criterionName); }