code: package org.gridkit.jvmtool.stacktrace.analytics;
  
  import org.gridkit.jvmtool.stacktrace.ThreadSnapshot;
  
  class ThreadNameAggregatorFactory implements ThreadDumpAggregator, ThreadDumpAggregatorFactory {
  
      int lengthLimit;
  
      public ThreadNameAggregatorFactory(int lengthLimit) {
          this.lengthLimit = lengthLimit;
      }
  
      @Override
      public ThreadDumpAggregator newInstance() {
          return new ThreadNameAggregatorFactory(lengthLimit);
      }
  
      String name = null;
  
      @Override
      public void aggregate(ThreadSnapshot threadInfo) {
          name = threadInfo.threadName();
          if (name != null && name.length() > lengthLimit) {
              name = name.substring(0, lengthLimit);
          }
      }
  
      @Override
      public Object info() {
          return name;
      }
  }
  