protected <T> T _get(String name, String key, boolean elaborate, Class<T> cls) { @SuppressWarnings("unchecked") MapOverlay<T> overlay = (MapOverlay<T>) children.get(name); return overlay.get(key); }
@Override protected JsonOverlay<Map<String, V>> _create(Map<String, V> value, JsonOverlay<?> parent, ReferenceManager refMgr) { return new MapOverlay<V>(value, parent, this, refMgr); }
public Overlay(MapOverlay<V> map, String key) { this.overlay = map._getOverlay(key); }
@Override protected void _elaborate(boolean atCreation) { if (json != null) { fillWithJson(); } else { fillWithValues(); } elaborated = true; }
private <X> void checkMapUnique(Overlay<Map<String, X>> map, boolean unique) { if (unique) { MapOverlay<X> mapOverlay = Overlay.getMapOverlay(map); Set<X> seen = new HashSet<>(); for (String key : mapOverlay.keySet()) { X value = mapOverlay.get(key); if (seen.contains(value)) { results.addError(msg(DuplicateValue, value, key), Overlay.of(mapOverlay, key)); } else { seen.add(value); } } } }
@Override protected JsonNode _toJsonInternal(SerializationOptions options) { ObjectNode obj = _jsonObject(); for (Entry<String, JsonOverlay<V>> entry : overlays.entrySet()) { obj.set(entry.getKey(), entry.getValue()._toJson(options.minus(Option.KEEP_ONE_EMPTY))); } return obj.size() > 0 || options.isKeepThisEmpty() ? obj : _jsonMissing(); }
@Override public boolean equals(Object obj) { return equals(obj, false); }
protected <T> void _setMap(String name, Map<String, T> mapVal, Class<T> cls) { @SuppressWarnings("unchecked") MapOverlay<T> overlay = (MapOverlay<T>) children.get(name); overlay._set(mapVal); }
public boolean equals(Object obj, boolean sameOrder) { if (obj instanceof MapOverlay<?>) { MapOverlay<?> castObj = (MapOverlay<?>) obj; return overlays.equals(castObj.overlays) && (!sameOrder || checkOrder(castObj)); } return false; }
private <X> void checkMapUnique(Overlay<Map<String, X>> map, boolean unique) { if (unique) { MapOverlay<X> mapOverlay = Overlay.getMapOverlay(map); Set<X> seen = new HashSet<>(); for (String key : mapOverlay.keySet()) { X value = mapOverlay.get(key); if (seen.contains(value)) { results.addError(msg(DuplicateValue, value, key), Overlay.of(mapOverlay, key)); } else { seen.add(value); } } } }
private Reference getMapReference(String key) { @SuppressWarnings("unchecked") MapOverlay<V> mapOverlay = (MapOverlay<V>) overlay; return getReference(mapOverlay._getOverlay(key)); }
@Override protected JsonOverlay<Map<String, V>> _create(JsonNode json, JsonOverlay<?> parent, ReferenceManager refMgr) { return new MapOverlay<V>(json, parent, this, refMgr); }