From 872ce55d5d4efd642fe4945f18e47a5c43a1fed7 Mon Sep 17 00:00:00 2001 From: MyXOF Date: Thu, 28 Feb 2019 17:31:04 +0800 Subject: [PATCH] get max_float_number in props --- .../encoding/encoder/TSEncodingBuilder.java | 46 +++++++++++++------ 1 file changed, 32 insertions(+), 14 deletions(-) diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/encoding/encoder/TSEncodingBuilder.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/encoding/encoder/TSEncodingBuilder.java index 515405097e2be..c8746de426f07 100644 --- a/tsfile/src/main/java/org/apache/iotdb/tsfile/encoding/encoder/TSEncodingBuilder.java +++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/encoding/encoder/TSEncodingBuilder.java @@ -67,6 +67,18 @@ public static TSEncodingBuilder getConverter(TSEncoding type) { } } + protected boolean isKeyContainedInMap(Map map, String key) { + if(map == null || key == null) { + return false; + } + for(String keyInMap : map.keySet()) { + if(key.equalsIgnoreCase(keyInMap)) { + return true; + } + } + return false; + } + /** * return a series's encoder with different types and parameters according to its measurement id * and data type. @@ -149,15 +161,18 @@ public Encoder getEncoder(TSDataType type) { @Override public void initFromProps(Map props) { // set max error from initialized map or default value if not set - if (props == null || !props.containsKey(Encoder.MAX_POINT_NUMBER)) { + if (!isKeyContainedInMap(props, Encoder.MAX_POINT_NUMBER)) { maxPointNumber = TSFileConfig.floatPrecision; } else { - maxPointNumber = Integer.valueOf(props.get(Encoder.MAX_POINT_NUMBER)); - if (maxPointNumber < 0) { - maxPointNumber = TSFileConfig.floatPrecision; - LOGGER - .warn("cannot set max point number to negative value, replaced with default value:{}", - maxPointNumber); + for(Map.Entry entry : props.entrySet()) { + if(Encoder.MAX_POINT_NUMBER.equalsIgnoreCase(entry.getKey())) { + maxPointNumber = Integer.valueOf(entry.getValue()); + if (maxPointNumber < 0) { + maxPointNumber = TSFileConfig.floatPrecision; + LOGGER.warn("cannot set max point number to negative value, replaced with default value:{}", + maxPointNumber); + } + } } } } @@ -197,15 +212,18 @@ public Encoder getEncoder(TSDataType type) { */ public void initFromProps(Map props) { // set max error from initialized map or default value if not set - if (props == null || !props.containsKey(Encoder.MAX_POINT_NUMBER)) { + if (!isKeyContainedInMap(props, Encoder.MAX_POINT_NUMBER)) { maxPointNumber = TSFileConfig.floatPrecision; } else { - maxPointNumber = Integer.valueOf(props.get(Encoder.MAX_POINT_NUMBER)); - if (maxPointNumber < 0) { - maxPointNumber = TSFileConfig.floatPrecision; - LOGGER - .warn("cannot set max point number to negative value, replaced with default value:{}", - maxPointNumber); + for(Map.Entry entry : props.entrySet()) { + if(Encoder.MAX_POINT_NUMBER.equalsIgnoreCase(entry.getKey())) { + maxPointNumber = Integer.valueOf(entry.getValue()); + if (maxPointNumber < 0) { + maxPointNumber = TSFileConfig.floatPrecision; + LOGGER.warn("cannot set max point number to negative value, replaced with default value:{}", + maxPointNumber); + } + } } } }