code: @SuppressWarnings("unchecked") // T == F when the chain is empty
      public T transform(final F item, final PipelineContext context) {
          if(chain == null || chain.isEmpty()) {
              return (T)item;
          }
  
          Object current = item;
          for(int i = 0; i < chain.size(); i++) {
              current = chain.get(i).transform(typeSteps.get(i), typeSteps.get(i + 1), current, context);
          }
          return (T)typeSteps.get(typeSteps.size() - 1).cast(current);
      }
docs: Converts data using this {@link com.merakianalytics.datapipelines.transformers.DataTransformer} chain
  
  @param item
  the data to convert
  @param context
  information about the context of the request such as what {@link com.merakianalytics.datapipelines.DataPipeline} called this method
  @return the converted data