@@ -852,31 +852,12 @@ private TSCreateAlignedTimeseriesReq getTSCreateAlignedTimeseriesReq(
852852 TSCreateAlignedTimeseriesReq request = new TSCreateAlignedTimeseriesReq ();
853853 request .setPrefixPath (prefixPath );
854854 request .setMeasurements (measurements );
855- request .setDataTypes (dataTypes .stream ().map (TSDataType ::ordinal ).collect (Collectors .toList ()));
856- request .setEncodings (encodings .stream ().map (TSEncoding ::ordinal ).collect (Collectors .toList ()));
857- request .setCompressors (
858- compressors .stream ().map (i -> (int ) i .serialize ()).collect (Collectors .toList ()));
859- if (measurementAliasList != null ) {
860- measurementAliasList =
861- measurementAliasList .stream ()
862- .map (value -> value != null ? value : "" )
863- .collect (Collectors .toList ());
864- }
865- request .setMeasurementAlias (measurementAliasList );
866- if (tagsList != null ) {
867- tagsList =
868- tagsList .stream ()
869- .map (value -> value != null ? value : new HashMap <String , String >())
870- .collect (Collectors .toList ());
871- }
872- request .setTagsList (tagsList );
873- if (attributesList != null ) {
874- attributesList =
875- attributesList .stream ()
876- .map (value -> value != null ? value : new HashMap <String , String >())
877- .collect (Collectors .toList ());
878- }
879- request .setAttributesList (attributesList );
855+ request .setDataTypes (toDataTypeOrdinals (dataTypes ));
856+ request .setEncodings (toEncodingOrdinals (encodings ));
857+ request .setCompressors (toCompressionOrdinals (compressors ));
858+ request .setMeasurementAlias (replaceNullStrings (measurementAliasList ));
859+ request .setTagsList (replaceNullMaps (tagsList ));
860+ request .setAttributesList (replaceNullMaps (attributesList ));
880861 return request ;
881862 }
882863
@@ -916,47 +897,14 @@ private TSCreateMultiTimeseriesReq genTSCreateMultiTimeseriesReq(
916897 TSCreateMultiTimeseriesReq request = new TSCreateMultiTimeseriesReq ();
917898
918899 request .setPaths (paths );
919-
920- List <Integer > dataTypeOrdinals = new ArrayList <>(dataTypes .size ());
921- for (TSDataType dataType : dataTypes ) {
922- dataTypeOrdinals .add (dataType .ordinal ());
923- }
924- request .setDataTypes (dataTypeOrdinals );
925-
926- List <Integer > encodingOrdinals = new ArrayList <>(dataTypes .size ());
927- for (TSEncoding encoding : encodings ) {
928- encodingOrdinals .add (encoding .ordinal ());
929- }
930- request .setEncodings (encodingOrdinals );
931-
932- List <Integer > compressionOrdinals = new ArrayList <>(paths .size ());
933- for (CompressionType compression : compressors ) {
934- compressionOrdinals .add ((int ) compression .serialize ());
935- }
936- request .setCompressors (compressionOrdinals );
900+ request .setDataTypes (toDataTypeOrdinals (dataTypes ));
901+ request .setEncodings (toEncodingOrdinals (encodings ));
902+ request .setCompressors (toCompressionOrdinals (compressors ));
937903
938904 request .setPropsList (propsList );
939- if (tagsList != null ) {
940- tagsList =
941- tagsList .stream ()
942- .map (value -> value != null ? value : new HashMap <String , String >())
943- .collect (Collectors .toList ());
944- }
945- request .setTagsList (tagsList );
946- if (attributesList != null ) {
947- attributesList =
948- attributesList .stream ()
949- .map (value -> value != null ? value : new HashMap <String , String >())
950- .collect (Collectors .toList ());
951- }
952- request .setAttributesList (attributesList );
953- if (measurementAliasList != null ) {
954- measurementAliasList =
955- measurementAliasList .stream ()
956- .map (value -> value != null ? value : "" )
957- .collect (Collectors .toList ());
958- }
959- request .setMeasurementAliasList (measurementAliasList );
905+ request .setTagsList (replaceNullMaps (tagsList ));
906+ request .setAttributesList (replaceNullMaps (attributesList ));
907+ request .setMeasurementAliasList (replaceNullStrings (measurementAliasList ));
960908
961909 return request ;
962910 }
@@ -1819,19 +1767,23 @@ private boolean filterNullValueAndMeasurement(
18191767 List <String > measurementsList ,
18201768 List <TSDataType > types ,
18211769 List <Object > valuesList ) {
1822- Map <String , Object > nullMap = new HashMap <>();
1770+ Map <String , Object > nullMap = logger . isInfoEnabled () ? new HashMap <>() : null ;
18231771 for (int i = valuesList .size () - 1 ; i >= 0 ; i --) {
18241772 if (valuesList .get (i ) == null ) {
1825- nullMap .put (measurementsList .get (i ), valuesList .get (i ));
1773+ if (nullMap != null ) {
1774+ nullMap .put (measurementsList .get (i ), valuesList .get (i ));
1775+ }
18261776 valuesList .remove (i );
18271777 measurementsList .remove (i );
18281778 types .remove (i );
18291779 }
18301780 }
18311781 if (valuesList .isEmpty ()) {
1832- logger .info ("All values of the {} are null,null values are {}" , deviceId , nullMap );
1782+ if (nullMap != null ) {
1783+ logger .info ("All values of the {} are null,null values are {}" , deviceId , nullMap );
1784+ }
18331785 return true ;
1834- } else {
1786+ } else if ( nullMap != null ) {
18351787 logger .info ("Some values of {} are null,null values are {}" , deviceId , nullMap );
18361788 }
18371789 return false ;
@@ -1867,18 +1819,22 @@ private void filterNullValueAndMeasurementWithStringType(
18671819 */
18681820 private boolean filterNullValueAndMeasurementWithStringType (
18691821 List <String > valuesList , String deviceId , List <String > measurementsList ) {
1870- Map <String , Object > nullMap = new HashMap <>();
1822+ Map <String , Object > nullMap = logger . isInfoEnabled () ? new HashMap <>() : null ;
18711823 for (int i = valuesList .size () - 1 ; i >= 0 ; i --) {
18721824 if (valuesList .get (i ) == null ) {
1873- nullMap .put (measurementsList .get (i ), valuesList .get (i ));
1825+ if (nullMap != null ) {
1826+ nullMap .put (measurementsList .get (i ), valuesList .get (i ));
1827+ }
18741828 valuesList .remove (i );
18751829 measurementsList .remove (i );
18761830 }
18771831 }
18781832 if (valuesList .isEmpty ()) {
1879- logger .info ("All values of the {} are null,null values are {}" , deviceId , nullMap );
1833+ if (nullMap != null ) {
1834+ logger .info ("All values of the {} are null,null values are {}" , deviceId , nullMap );
1835+ }
18801836 return true ;
1881- } else {
1837+ } else if ( nullMap != null ) {
18821838 logger .info ("Some values of {} are null,null values are {}" , deviceId , nullMap );
18831839 }
18841840 return false ;
@@ -2622,7 +2578,65 @@ private TSInsertStringRecordsOfOneDeviceReq genTSInsertStringRecordsOfOneDeviceR
26222578 * @return ordered list
26232579 */
26242580 private static <T > List <T > sortList (List <T > source , Integer [] index ) {
2625- return Arrays .stream (index ).map (source ::get ).collect (Collectors .toList ());
2581+ List <T > sortedList = new ArrayList <>(index .length );
2582+ for (int position : index ) {
2583+ sortedList .add (source .get (position ));
2584+ }
2585+ return sortedList ;
2586+ }
2587+
2588+ private static List <Integer > toDataTypeOrdinals (List <TSDataType > dataTypes ) {
2589+ List <Integer > ordinals = new ArrayList <>(dataTypes .size ());
2590+ for (TSDataType dataType : dataTypes ) {
2591+ ordinals .add (dataType .ordinal ());
2592+ }
2593+ return ordinals ;
2594+ }
2595+
2596+ private static List <Integer > toEncodingOrdinals (List <TSEncoding > encodings ) {
2597+ List <Integer > ordinals = new ArrayList <>(encodings .size ());
2598+ for (TSEncoding encoding : encodings ) {
2599+ ordinals .add (encoding .ordinal ());
2600+ }
2601+ return ordinals ;
2602+ }
2603+
2604+ private static List <Integer > toCompressionOrdinals (List <CompressionType > compressors ) {
2605+ List <Integer > ordinals = new ArrayList <>(compressors .size ());
2606+ for (CompressionType compression : compressors ) {
2607+ ordinals .add ((int ) compression .serialize ());
2608+ }
2609+ return ordinals ;
2610+ }
2611+
2612+ private static List <Byte > toEnumOrdinalsAsBytes (List <? extends Enum <?>> enumValues ) {
2613+ List <Byte > ordinals = new ArrayList <>(enumValues .size ());
2614+ for (Enum <?> enumValue : enumValues ) {
2615+ ordinals .add ((byte ) enumValue .ordinal ());
2616+ }
2617+ return ordinals ;
2618+ }
2619+
2620+ private static List <String > replaceNullStrings (List <String > values ) {
2621+ if (values == null ) {
2622+ return null ;
2623+ }
2624+ List <String > replacedValues = new ArrayList <>(values .size ());
2625+ for (String value : values ) {
2626+ replacedValues .add (value != null ? value : "" );
2627+ }
2628+ return replacedValues ;
2629+ }
2630+
2631+ private static List <Map <String , String >> replaceNullMaps (List <Map <String , String >> values ) {
2632+ if (values == null ) {
2633+ return null ;
2634+ }
2635+ List <Map <String , String >> replacedValues = new ArrayList <>(values .size ());
2636+ for (Map <String , String > value : values ) {
2637+ replacedValues .add (value != null ? value : new HashMap <>());
2638+ }
2639+ return replacedValues ;
26262640 }
26272641
26282642 private List <ByteBuffer > objectValuesListToByteBufferList (
@@ -2820,10 +2834,7 @@ public void insertRelationalTablet(Tablet tablet)
28202834 } else {
28212835 TSInsertTabletReq request = genTSInsertTabletReq (tablet , false , false );
28222836 request .setWriteToTable (true );
2823- request .setColumnCategories (
2824- tablet .getColumnTypes ().stream ()
2825- .map (t -> (byte ) t .ordinal ())
2826- .collect (Collectors .toList ()));
2837+ request .setColumnCategories (toEnumOrdinalsAsBytes (tablet .getColumnTypes ()));
28272838 try {
28282839 getDefaultSessionConnection ().insertTablet (request );
28292840 } catch (RedirectException ignored ) {
@@ -2889,8 +2900,7 @@ private void insertRelationalTabletOnce(Map<SessionConnection, Tablet> relationa
28892900 Tablet tablet = entry .getValue ();
28902901 TSInsertTabletReq request = genTSInsertTabletReq (tablet , false , false );
28912902 request .setWriteToTable (true );
2892- request .setColumnCategories (
2893- tablet .getColumnTypes ().stream ().map (t -> (byte ) t .ordinal ()).collect (Collectors .toList ()));
2903+ request .setColumnCategories (toEnumOrdinalsAsBytes (tablet .getColumnTypes ()));
28942904 try {
28952905 connection .insertTablet (request );
28962906 } catch (RedirectException e ) {
@@ -2932,9 +2942,7 @@ private void insertRelationalTabletByGroup(Map<SessionConnection, Tablet> relati
29322942 TSInsertTabletReq request = genTSInsertTabletReq (subTablet , false , false );
29332943 request .setWriteToTable (true );
29342944 request .setColumnCategories (
2935- subTablet .getColumnTypes ().stream ()
2936- .map (t -> (byte ) t .ordinal ())
2937- .collect (Collectors .toList ()));
2945+ toEnumOrdinalsAsBytes (subTablet .getColumnTypes ()));
29382946 InsertConsumer <TSInsertTabletReq > insertConsumer =
29392947 SessionConnection ::insertTablet ;
29402948 try {
@@ -3904,10 +3912,9 @@ public void addAlignedMeasurementsInTemplate(
39043912 TSAppendSchemaTemplateReq req = new TSAppendSchemaTemplateReq ();
39053913 req .setName (templateName );
39063914 req .setMeasurements (measurementsPath );
3907- req .setDataTypes (dataTypes .stream ().map (TSDataType ::ordinal ).collect (Collectors .toList ()));
3908- req .setEncodings (encodings .stream ().map (TSEncoding ::ordinal ).collect (Collectors .toList ()));
3909- req .setCompressors (
3910- compressors .stream ().map (i -> (int ) i .serialize ()).collect (Collectors .toList ()));
3915+ req .setDataTypes (toDataTypeOrdinals (dataTypes ));
3916+ req .setEncodings (toEncodingOrdinals (encodings ));
3917+ req .setCompressors (toCompressionOrdinals (compressors ));
39113918 req .setIsAligned (true );
39123919 getDefaultSessionConnection ().appendSchemaTemplate (req );
39133920 }
@@ -3950,10 +3957,9 @@ public void addUnalignedMeasurementsInTemplate(
39503957 TSAppendSchemaTemplateReq req = new TSAppendSchemaTemplateReq ();
39513958 req .setName (templateName );
39523959 req .setMeasurements (measurementsPath );
3953- req .setDataTypes (dataTypes .stream ().map (TSDataType ::ordinal ).collect (Collectors .toList ()));
3954- req .setEncodings (encodings .stream ().map (TSEncoding ::ordinal ).collect (Collectors .toList ()));
3955- req .setCompressors (
3956- compressors .stream ().map (i -> (int ) i .serialize ()).collect (Collectors .toList ()));
3960+ req .setDataTypes (toDataTypeOrdinals (dataTypes ));
3961+ req .setEncodings (toEncodingOrdinals (encodings ));
3962+ req .setCompressors (toCompressionOrdinals (compressors ));
39573963 req .setIsAligned (false );
39583964 getDefaultSessionConnection ().appendSchemaTemplate (req );
39593965 }
0 commit comments