@Override public void clear() { this.id = null; super.clear(); };
@Override public boolean addTo(String key, String value) { if (ID_FIELD_NAME.equals(key)) { this.id = value; } else if (PARENT_FIELD_NAME.equals(key)) { this.addTo(TERM_CATEGORY_FIELD_NAME, value.replaceAll(PARENT_ID_REGEX, "$1")); } return super.addTo(key, value); }
public void expandTermCategories(Map<String, TermData> data) { Set<String> result = new LinkedHashSet<>(); Queue<String> front = new LinkedList<>(); if (this.get(TERM_CATEGORY_FIELD_NAME) == null) { this.put(TERM_CATEGORY_FIELD_NAME, super.getEmptyCollection()); } result.add(this.id); front.addAll(this.get(TERM_CATEGORY_FIELD_NAME)); String nextTermId; while ((nextTermId = front.poll()) != null) { result.add(nextTermId); if (data.get(nextTermId).get(PARENT_FIELD_NAME) == null) { continue; } for (String parentTermId : data.get(nextTermId).get(PARENT_FIELD_NAME)) { parentTermId = parentTermId.replaceAll(PARENT_ID_REGEX, "$1"); if (!result.contains(parentTermId) && !front.contains(parentTermId)) { front.add(parentTermId); } } } this.put(TERM_CATEGORY_FIELD_NAME, result); } }
@Override public boolean addTo(String key, String value) { if (ID_FIELD_NAME.equals(key)) { this.id = value; } else if (PARENT_FIELD_NAME.equals(key)) { this.addTo(TERM_CATEGORY_FIELD_NAME, value.replaceAll(PARENT_ID_REGEX, "$1")); } return super.addTo(key, value); }
public void expandTermCategories(Map<String, TermData> data) { Set<String> result = new LinkedHashSet<>(); Queue<String> front = new LinkedList<>(); if (this.get(TERM_CATEGORY_FIELD_NAME) == null) { this.put(TERM_CATEGORY_FIELD_NAME, super.getEmptyCollection()); } result.add(this.id); front.addAll(this.get(TERM_CATEGORY_FIELD_NAME)); String nextTermId; while ((nextTermId = front.poll()) != null) { result.add(nextTermId); if (data.get(nextTermId).get(PARENT_FIELD_NAME) == null) { continue; } for (String parentTermId : data.get(nextTermId).get(PARENT_FIELD_NAME)) { parentTermId = parentTermId.replaceAll(PARENT_ID_REGEX, "$1"); if (!result.contains(parentTermId) && !front.contains(parentTermId)) { front.add(parentTermId); } } } this.put(TERM_CATEGORY_FIELD_NAME, result); } }
@Override public void clear() { this.id = null; super.clear(); };