This is an automated email from the ASF dual-hosted git repository.

jackietien pushed a commit to branch change
in repository https://gitbox.apache.org/repos/asf/tsfile.git

commit da4872d061d0fa409387e4c8330e7f9c158bd7ce
Author: JackieTien97 <[email protected]>
AuthorDate: Sun Jan 26 16:58:31 2025 +0800

    Add more interface
---
 .mvn/develocity.xml                                            |  2 +-
 .mvn/extensions.xml                                            |  2 +-
 .../tsfile/file/metadata/AbstractAlignedChunkMetadata.java     |  3 +++
 .../org/apache/tsfile/file/metadata/AlignedChunkMetadata.java  |  6 ++++++
 .../apache/tsfile/file/metadata/TableDeviceChunkMetadata.java  |  6 ++++++
 .../main/java/org/apache/tsfile/read/TsFileSequenceReader.java | 10 +++++-----
 .../src/test/java/org/apache/tsfile/read/TsFileReaderTest.java |  6 +++---
 .../read/reader/AlignedChunkReaderWithoutStatisticsTest.java   |  6 +++---
 8 files changed, 28 insertions(+), 13 deletions(-)

diff --git a/.mvn/develocity.xml b/.mvn/develocity.xml
index 440f33159..f61a88ee7 100644
--- a/.mvn/develocity.xml
+++ b/.mvn/develocity.xml
@@ -47,4 +47,4 @@
             <enabled>false</enabled>
         </remote>
     </buildCache>
-</develocity>
\ No newline at end of file
+</develocity>
diff --git a/.mvn/extensions.xml b/.mvn/extensions.xml
index cb6afc647..1dd32d62d 100644
--- a/.mvn/extensions.xml
+++ b/.mvn/extensions.xml
@@ -30,4 +30,4 @@
         <artifactId>common-custom-user-data-maven-extension</artifactId>
         <version>2.0.1</version>
     </extension>
-</extensions>
\ No newline at end of file
+</extensions>
diff --git 
a/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/AbstractAlignedChunkMetadata.java
 
b/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/AbstractAlignedChunkMetadata.java
index 4bbc28581..9183d6900 100644
--- 
a/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/AbstractAlignedChunkMetadata.java
+++ 
b/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/AbstractAlignedChunkMetadata.java
@@ -192,4 +192,7 @@ public abstract class AbstractAlignedChunkMetadata 
implements IChunkMetadata {
   public List<IChunkMetadata> getValueChunkMetadataList() {
     return valueChunkMetadataList;
   }
+
+  public abstract AbstractAlignedChunkMetadata createNewChunkMetadata(
+      IChunkMetadata timeChunkMetadata, List<IChunkMetadata> 
valueChunkMetadataList);
 }
diff --git 
a/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/AlignedChunkMetadata.java
 
b/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/AlignedChunkMetadata.java
index 81df89ca2..15e9fdb97 100644
--- 
a/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/AlignedChunkMetadata.java
+++ 
b/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/AlignedChunkMetadata.java
@@ -31,6 +31,12 @@ public class AlignedChunkMetadata extends 
AbstractAlignedChunkMetadata {
     super(timeChunkMetadata, valueChunkMetadataList);
   }
 
+  @Override
+  public AbstractAlignedChunkMetadata createNewChunkMetadata(
+      IChunkMetadata timeChunkMetadata, List<IChunkMetadata> 
valueChunkMetadataList) {
+    return new AlignedChunkMetadata(timeChunkMetadata, valueChunkMetadataList);
+  }
+
   @Override
   public Statistics<? extends Serializable> getStatistics() {
     return valueChunkMetadataList.size() == 1 && valueChunkMetadataList.get(0) 
!= null
diff --git 
a/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/TableDeviceChunkMetadata.java
 
b/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/TableDeviceChunkMetadata.java
index 8daeffc5d..f84f10595 100644
--- 
a/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/TableDeviceChunkMetadata.java
+++ 
b/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/TableDeviceChunkMetadata.java
@@ -31,6 +31,12 @@ public class TableDeviceChunkMetadata extends 
AbstractAlignedChunkMetadata {
     super(timeChunkMetadata, valueChunkMetadataList);
   }
 
+  @Override
+  public AbstractAlignedChunkMetadata createNewChunkMetadata(
+      IChunkMetadata timeChunkMetadata, List<IChunkMetadata> 
valueChunkMetadataList) {
+    return new TableDeviceChunkMetadata(timeChunkMetadata, 
valueChunkMetadataList);
+  }
+
   @Override
   public Statistics<? extends Serializable> getStatistics() {
     return timeChunkMetadata.getStatistics();
diff --git 
a/java/tsfile/src/main/java/org/apache/tsfile/read/TsFileSequenceReader.java 
b/java/tsfile/src/main/java/org/apache/tsfile/read/TsFileSequenceReader.java
index 3961053bd..afd4e9c3f 100644
--- a/java/tsfile/src/main/java/org/apache/tsfile/read/TsFileSequenceReader.java
+++ b/java/tsfile/src/main/java/org/apache/tsfile/read/TsFileSequenceReader.java
@@ -41,8 +41,8 @@ import org.apache.tsfile.file.MetaMarker;
 import org.apache.tsfile.file.header.ChunkGroupHeader;
 import org.apache.tsfile.file.header.ChunkHeader;
 import org.apache.tsfile.file.header.PageHeader;
+import org.apache.tsfile.file.metadata.AbstractAlignedChunkMetadata;
 import org.apache.tsfile.file.metadata.AbstractAlignedTimeSeriesMetadata;
-import org.apache.tsfile.file.metadata.AlignedChunkMetadata;
 import org.apache.tsfile.file.metadata.AlignedTimeSeriesMetadata;
 import org.apache.tsfile.file.metadata.ChunkGroupMetadata;
 import org.apache.tsfile.file.metadata.ChunkMetadata;
@@ -2579,7 +2579,7 @@ public class TsFileSequenceReader implements 
AutoCloseable {
    *
    * @param device device name
    */
-  public List<AlignedChunkMetadata> getAlignedChunkMetadata(
+  public List<AbstractAlignedChunkMetadata> getAlignedChunkMetadata(
       IDeviceID device, boolean ignoreAllNullRows) throws IOException {
     readFileMetadata();
     MetadataIndexNode deviceMetadataIndexNode =
@@ -2611,7 +2611,7 @@ public class TsFileSequenceReader implements 
AutoCloseable {
    * @param metadataIndexNode the first measurement metadata index node of the 
device
    * @param ignoreAllNullRows ignore all null rows
    */
-  public List<AlignedChunkMetadata> getAlignedChunkMetadataByMetadataIndexNode(
+  public List<AbstractAlignedChunkMetadata> 
getAlignedChunkMetadataByMetadataIndexNode(
       IDeviceID device, MetadataIndexNode metadataIndexNode, boolean 
ignoreAllNullRows)
       throws IOException {
     TimeseriesMetadata firstTimeseriesMetadata = 
getTimeColumnMetadata(metadataIndexNode);
@@ -2672,9 +2672,9 @@ public class TsFileSequenceReader implements 
AutoCloseable {
       alignedTimeSeriesMetadata =
           new TableDeviceTimeSeriesMetadata(timeseriesMetadata, 
valueTimeseriesMetadataList);
     }
-    List<AlignedChunkMetadata> chunkMetadataList = new ArrayList<>();
+    List<AbstractAlignedChunkMetadata> chunkMetadataList = new ArrayList<>();
     for (IChunkMetadata chunkMetadata : 
readIChunkMetaDataList(alignedTimeSeriesMetadata)) {
-      chunkMetadataList.add((AlignedChunkMetadata) chunkMetadata);
+      chunkMetadataList.add((AbstractAlignedChunkMetadata) chunkMetadata);
     }
     return chunkMetadataList;
   }
diff --git 
a/java/tsfile/src/test/java/org/apache/tsfile/read/TsFileReaderTest.java 
b/java/tsfile/src/test/java/org/apache/tsfile/read/TsFileReaderTest.java
index 7353e59b9..a71718adc 100644
--- a/java/tsfile/src/test/java/org/apache/tsfile/read/TsFileReaderTest.java
+++ b/java/tsfile/src/test/java/org/apache/tsfile/read/TsFileReaderTest.java
@@ -23,7 +23,7 @@ import org.apache.tsfile.common.conf.TSFileConfig;
 import org.apache.tsfile.common.conf.TSFileDescriptor;
 import org.apache.tsfile.enums.TSDataType;
 import org.apache.tsfile.exception.write.WriteProcessException;
-import org.apache.tsfile.file.metadata.AlignedChunkMetadata;
+import org.apache.tsfile.file.metadata.AbstractAlignedChunkMetadata;
 import org.apache.tsfile.file.metadata.IChunkMetadata;
 import org.apache.tsfile.file.metadata.IDeviceID;
 import org.apache.tsfile.file.metadata.enums.CompressionType;
@@ -539,9 +539,9 @@ public class TsFileReaderTest {
 
       String[] expected = new String[] {"s1", "s2", "s3", "s4"};
 
-      List<AlignedChunkMetadata> chunkMetadataList =
+      List<AbstractAlignedChunkMetadata> chunkMetadataList =
           
reader.getAlignedChunkMetadata(IDeviceID.Factory.DEFAULT_FACTORY.create("d1"), 
true);
-      AlignedChunkMetadata alignedChunkMetadata = chunkMetadataList.get(0);
+      AbstractAlignedChunkMetadata alignedChunkMetadata = 
chunkMetadataList.get(0);
       Assert.assertEquals("", 
alignedChunkMetadata.getTimeChunkMetadata().getMeasurementUid());
       int i = 0;
       for (IChunkMetadata chunkMetadata : 
alignedChunkMetadata.getValueChunkMetadataList()) {
diff --git 
a/java/tsfile/src/test/java/org/apache/tsfile/read/reader/AlignedChunkReaderWithoutStatisticsTest.java
 
b/java/tsfile/src/test/java/org/apache/tsfile/read/reader/AlignedChunkReaderWithoutStatisticsTest.java
index 7984e3e5e..f82f03949 100644
--- 
a/java/tsfile/src/test/java/org/apache/tsfile/read/reader/AlignedChunkReaderWithoutStatisticsTest.java
+++ 
b/java/tsfile/src/test/java/org/apache/tsfile/read/reader/AlignedChunkReaderWithoutStatisticsTest.java
@@ -22,7 +22,7 @@ package org.apache.tsfile.read.reader;
 import org.apache.tsfile.common.conf.TSFileDescriptor;
 import org.apache.tsfile.constant.TestConstant;
 import org.apache.tsfile.exception.write.WriteProcessException;
-import org.apache.tsfile.file.metadata.AlignedChunkMetadata;
+import org.apache.tsfile.file.metadata.AbstractAlignedChunkMetadata;
 import org.apache.tsfile.file.metadata.ChunkMetadata;
 import org.apache.tsfile.file.metadata.IChunkMetadata;
 import org.apache.tsfile.file.metadata.IDeviceID.Factory;
@@ -96,11 +96,11 @@ public class AlignedChunkReaderWithoutStatisticsTest {
     try (final TsFileSequenceReader tsFileSequenceReader =
         new TsFileSequenceReader(file.getPath())) {
       for (int i = 0; i < deviceNum; i++) {
-        final List<AlignedChunkMetadata> chunkMetadataList =
+        final List<AbstractAlignedChunkMetadata> chunkMetadataList =
             tsFileSequenceReader.getAlignedChunkMetadata(
                 Factory.DEFAULT_FACTORY.create(testStorageGroup + 
PATH_SEPARATOR + "d1000" + i),
                 true);
-        for (final AlignedChunkMetadata chunkMetadata : chunkMetadataList) {
+        for (final AbstractAlignedChunkMetadata chunkMetadata : 
chunkMetadataList) {
           Chunk timeChunk =
               tsFileSequenceReader.readMemChunk(
                   (ChunkMetadata) chunkMetadata.getTimeChunkMetadata());

Reply via email to