diff --git a/src/main/java/org/codelibs/fess/entity/DataStoreParams.java b/src/main/java/org/codelibs/fess/entity/DataStoreParams.java index 1de9aba47..b14d7f259 100644 --- a/src/main/java/org/codelibs/fess/entity/DataStoreParams.java +++ b/src/main/java/org/codelibs/fess/entity/DataStoreParams.java @@ -23,11 +23,11 @@ public class DataStoreParams { protected final Map params; public DataStoreParams() { - params = new HashMap<>(); + params = new ParamMap<>(new HashMap<>()); } protected DataStoreParams(final Map params) { - this.params = new HashMap<>(params); + this.params = new ParamMap<>(new HashMap<>(getDataMap(params))); } public void put(final String key, final Object value) { @@ -70,6 +70,14 @@ public class DataStoreParams { } public Map asMap() { - return new HashMap<>(params); + return new ParamMap<>(new HashMap<>(getDataMap(params))); + } + + protected static Map getDataMap(final Map params) { + if (params instanceof ParamMap paramMap) { + return paramMap.getParent(); + } else { + return params; + } } } diff --git a/src/main/java/org/codelibs/fess/ds/ParamMap.java b/src/main/java/org/codelibs/fess/entity/ParamMap.java similarity index 98% rename from src/main/java/org/codelibs/fess/ds/ParamMap.java rename to src/main/java/org/codelibs/fess/entity/ParamMap.java index ae73d503c..fc3760b5f 100644 --- a/src/main/java/org/codelibs/fess/ds/ParamMap.java +++ b/src/main/java/org/codelibs/fess/entity/ParamMap.java @@ -13,7 +13,7 @@ * either express or implied. See the License for the specific language * governing permissions and limitations under the License. */ -package org.codelibs.fess.ds; +package org.codelibs.fess.entity; import java.util.Collection; import java.util.Map; @@ -34,6 +34,10 @@ public class ParamMap implements Map { this.parent = parent; } + public Map getParent() { + return parent; + } + protected Object toCamelCase(final Object key) { if (key == null) { return key; diff --git a/src/test/java/org/codelibs/fess/ds/ParamMapTest.java b/src/test/java/org/codelibs/fess/entity/ParamMapTest.java similarity index 98% rename from src/test/java/org/codelibs/fess/ds/ParamMapTest.java rename to src/test/java/org/codelibs/fess/entity/ParamMapTest.java index 6211b36bc..a649a9457 100644 --- a/src/test/java/org/codelibs/fess/ds/ParamMapTest.java +++ b/src/test/java/org/codelibs/fess/entity/ParamMapTest.java @@ -13,11 +13,12 @@ * either express or implied. See the License for the specific language * governing permissions and limitations under the License. */ -package org.codelibs.fess.ds; +package org.codelibs.fess.entity; import java.util.HashMap; import java.util.Map; +import org.codelibs.fess.entity.ParamMap; import org.codelibs.fess.unit.UnitFessTestCase; public class ParamMapTest extends UnitFessTestCase {