12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- package com.boman.system.common;
- import com.alibaba.fastjson.JSONObject;
- import java.util.AbstractMap;
- import java.util.Set;
- import java.util.stream.Collectors;
- import java.util.stream.Stream;
- /**
- * @author lzm
- * @date 2018/10/29
- * 可被覆盖的
- */
- public class OverlayJSONObject extends AbstractMap {
- private JSONObject baseData;
- private JSONObject data;
- public OverlayJSONObject(JSONObject base, JSONObject data) {
- if (data == null) {
- throw new IllegalArgumentException("入口的新集合不可为空!");
- }
- this.baseData = base;
- this.data = data;
- }
- @Override
- public Object remove(Object key) {
- return data.remove(key);
- }
- @Override
- public Object put(Object key, Object value) {
- return data.put((String) key, value);
- }
- @Override
- public Set<Entry<String, Object>> entrySet() {
- if (this.baseData == null) {
- return this.data.entrySet();
- } else {
- return Stream.concat(this.data.entrySet().stream(), this.baseData.entrySet().stream()
- .filter(pair -> !this.data.containsKey(pair.getKey()))).collect(Collectors.toSet());
- }
- }
- }
|