code: public static Trash createTrash(FileSystem fs, Properties props, String user)
        throws IOException {
      if(props.containsKey(TRASH_TEST) && Boolean.parseBoolean(props.getProperty(TRASH_TEST))) {
        LOG.info("Creating a test trash. Nothing will actually be deleted.");
        return new TestTrash(fs, props, user);
      }
      if(props.containsKey(SIMULATE) && Boolean.parseBoolean(props.getProperty(SIMULATE))) {
        LOG.info("Creating a simulate trash. Nothing will actually be deleted.");
        return new MockTrash(fs, props, user);
      }
      if(props.containsKey(SKIP_TRASH) && Boolean.parseBoolean(props.getProperty(SKIP_TRASH))) {
        LOG.info("Creating an immediate deletion trash. Files will be deleted immediately instead of moved to trash.");
        return new ImmediateDeletionTrash(fs, props, user);
      }
      return new Trash(fs, props, user);
    }
docs: Creates a {@link org.apache.gobblin.data.management.trash.Trash} instance.
  @param fs {@link org.apache.hadoop.fs.FileSystem} where trash is located.
  @param props {@link java.util.Properties} used to generate trash.
  @param user $USER tokens in the trash path will be replaced by this string.
  @return instance of {@link org.apache.gobblin.data.management.trash.Trash}.
  @throws IOException