bvaradar commented on code in PR #11923:
URL: https://github.com/apache/hudi/pull/11923#discussion_r1840830309


##########
hudi-common/src/main/java/org/apache/hudi/common/table/timeline/TimelineLayout.java:
##########
@@ -45,33 +58,133 @@ public static TimelineLayout 
getLayout(TimelineLayoutVersion version) {
 
   public abstract Stream<HoodieInstant> 
filterHoodieInstants(Stream<HoodieInstant> instantStream);
 
+  public abstract InstantFactory getInstantFactory();
+
+  public abstract InstantFileNameFactory getInstantFileNameFactory();
+
+  public abstract TimelineFactory getTimelineFactory();
+
+  public abstract InstantComparator getInstantComparator();
+
+  public abstract InstantFileNameParser getInstantFileNameParser();
+
+  public abstract CommitMetadataSerDe getCommitMetadataSerDe();
+
   /**
    * Table Layout where state transitions are managed by renaming files.
    */
   private static class TimelineLayoutV0 extends TimelineLayout {
 
+    private final InstantFactory instantFactory = new InstantFactoryV1();
+    private final InstantFileNameFactory instantFileNameFactory = new 
InstantFileNameFactoryV1();
+    private final TimelineFactory timelineFactory = new 
TimelineV1Factory(this);
+    private final InstantComparator instantComparator = new 
InstantComparatorV1();
+    private final InstantFileNameParser fileNameParser = new 
InstantFileNameParserV2();
+
     @Override
     public Stream<HoodieInstant> filterHoodieInstants(Stream<HoodieInstant> 
instantStream) {
       return instantStream;
     }
+
+    @Override
+    public InstantFactory getInstantFactory() {
+      return instantFactory;
+    }
+
+    @Override
+    public InstantFileNameFactory getInstantFileNameFactory() {
+      return instantFileNameFactory;
+    }
+
+    @Override
+    public TimelineFactory getTimelineFactory() {
+      return timelineFactory;
+    }
+
+    @Override
+    public InstantComparator getInstantComparator() {
+      return instantComparator;
+    }
+
+    @Override
+    public InstantFileNameParser getInstantFileNameParser() {
+      return fileNameParser;
+    }
+
+    @Override
+    public CommitMetadataSerDe getCommitMetadataSerDe() {
+      return new CommitMetadataSerDeV1();
+    }
+  }
+
+  private static Stream<HoodieInstant> 
filterHoodieInstantsByLatestState(Stream<HoodieInstant> instantStream,

Review Comment:
   this was existing code in TimelineLayoutV1 which was moved to be shared with 
TimelineLayoutV2



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to