content: 
  package org.example.jfranalyzerbackend.extractor;
  
  import org.example.jfranalyzerbackend.enums.EventConstant;
  import org.example.jfranalyzerbackend.model.AnalysisResult;
  import org.example.jfranalyzerbackend.model.TaskSum;
  import org.example.jfranalyzerbackend.model.jfr.RecordedEvent;
  
  import java.util.List;
  
  public class FileIOTimeExtractor extends BaseValueExtractor {
      private static final List<String> INTERESTED = createInterestedList(
              EventConstant.FILE_READ, EventConstant.FILE_WRITE, EventConstant.FILE_FORCE);
  
      public FileIOTimeExtractor(JFRAnalysisContext context) {
          super(context, INTERESTED);
      }
  
      @Override
      void visitFileRead(RecordedEvent event) {
          long eventValue = event.getDurationNano();
          processValueEvent(event, eventValue);
      }
  
      @Override
      void visitFileWrite(RecordedEvent event) {
          long eventValue = event.getDurationNano();
          processValueEvent(event, eventValue);
      }
  
      @Override
      void visitFileForce(RecordedEvent event) {
          long eventValue = event.getDurationNano();
          processValueEvent(event, eventValue);
      }
  
      @Override
      public void fillResult(AnalysisResult result) {
          List<TaskSum> taskSums = generateTaskResults(TaskSum.class);
          populateResult(result, taskSums, result::setFileIOTime);
      }
  }
  