@Override public boolean addTo(String key, Collection<String> values) { boolean result = true; for (String value : values) { result &= this.addTo(key, value); } return result; }
private void propagateAncestors() { for (String id : this.data.keySet()) { TermData term = this.data.get(id); term.expandTermCategories(this.data); } } }
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); } }
for (Map.Entry<String, Collection<String>> property : item.getValue().entrySet()) { String name = property.getKey(); for (String value : property.getValue()) {
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); } }
for (Map.Entry<String, Collection<String>> property : item.getValue().entrySet()) { String name = property.getKey(); for (String value : property.getValue()) {
@Override public boolean addTo(String key, Collection<String> values) { boolean result = true; for (String value : values) { result &= this.addTo(key, value); } return result; }
private void propagateAncestors() { for (String id : this.data.keySet()) { TermData term = this.data.get(id); term.expandTermCategories(this.data); } } }
@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); }
private void loadField(String name, String value) { if (!(isFieldSelected(name))) { return; } this.crtTerm.addTo(name, value.replaceFirst("^\"(.+)\"\\s*?(?:[A-Z]+|\\[).*", "$1") .replaceFirst("\\s+\\{.*$", "").replaceFirst("^(HP:\\d{7}) ! .*$", "$1").replace("\\\"", "\"")); }
@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); }
private void loadField(String name, String value) { if (!(isFieldSelected(name))) { return; } this.crtTerm.addTo(name, value.replaceFirst("^\"(.+)\"\\s*?(?:[A-Z]+|\\[).*", "$1") .replaceFirst("\\s+\\{.*$", "").replaceFirst("^(HP:\\d{7}) ! .*$", "$1").replace("\\\"", "\"")); }