class FieldSplitter extends BaseTransform<FieldSplitterMeta, FieldSplitterData> implements ITransform<FieldSplitterMeta, FieldSplitterData> {

  @Override
  public synchronized boolean processRow() throws HopException {

    Object[] r = getRow(); // get row from rowset, wait for our turn, indicate busy!
    if ( r == null ) {
      // no more input to be expected...
      setOutputDone();

      return false;
    }

    Object[] outputRowData = splitField( r );
    putRow( data.outputMeta, outputRowData );

    if ( checkFeedback( getLinesRead() ) ) {
      if ( log.isBasic() ) {
        logBasic( BaseMessages.getString( PKG, "FieldSplitter.Log.LineNumber" ) + getLinesRead() );
      }
    }

    return true;
  }

  public  FieldSplitter( TransformMeta transformMeta, FieldSplitterMeta meta, FieldSplitterData data, int copyNr, PipelineMeta pipelineMeta,
                        Pipeline pipeline );

}