class StringOperationsMeta extends BaseTransformMeta implements ITransformMeta<StringOperations,StringOperationsData> {

  @Override
  public void getFields( IRowMeta inputRowMeta, String name, IRowMeta[] info, TransformMeta nextTransform,
                         IVariables variables, IHopMetadataProvider metadataProvider ) throws HopTransformException {
    // Add new field?
    for ( int i = 0; i < fieldOutStream.length; i++ ) {
      IValueMeta v;
      String outputField = variables.environmentSubstitute( fieldOutStream[ i ] );
      if ( !Utils.isEmpty( outputField ) ) {
        // Add a new field
        v = new ValueMetaString( outputField );
        v.setLength( 100, -1 );
        v.setOrigin( name );
        inputRowMeta.addValueMeta( v );
      } else {
        v = inputRowMeta.searchValueMeta( fieldInStream[ i ] );
        if ( v == null ) {
          continue;
        }
        v.setStorageType( IValueMeta.STORAGE_TYPE_NORMAL );
        int paddingType = getPaddingType()[ i ];
        if ( paddingType == PADDING_LEFT || paddingType == PADDING_RIGHT ) {
          int padLen = Const.toInt( variables.environmentSubstitute( getPadLen()[ i ] ), 0 );
          if ( padLen > v.getLength() ) {
            // alter meta data
            v.setLength( padLen );
          }
        }
      }
    }
  }

  public  StringOperationsMeta();

}