code: public void extract()
      {
          ExecutorService executor = Executors.newFixedThreadPool(this.extractorConfig.getThreadPoolSize());
          try
          {
              Map<Pair<RelatedFinder, Object>, List<MithraDataObject>> extract = extractData(executor);
              writeToFiles(executor, extract);
          }
          finally
          {
              executor.shutdown();
              try
              {
                  executor.awaitTermination(extractorConfig.getTimeoutSeconds(), TimeUnit.SECONDS);
              }
              catch (InterruptedException e)
              {
                  //
              }
          }
      }
docs: Extract data and related data from the root operations added and write extracted data to text files as defined
  by OutputStrategy.
  
  @see com.gs.fw.common.mithra.util.dbextractor.OutputStrategy