class XmlOutputMeta extends BaseTransformMeta implements ITransformMeta<XmlOutput, XmlOutputData> {

  public void check( List<ICheckResult> remarks, PipelineMeta transMeta, TransformMeta stepinfo, IRowMeta prev,
                     String[] input, String[] output, IRowMeta info, IVariables space, IHopMetadataProvider metadataProvider ) {
    CheckResult cr;

    // Check output fields
    if ( prev != null && prev.size() > 0 ) {
      cr =
        new CheckResult( ICheckResult.TYPE_RESULT_OK, BaseMessages.getString( PKG,
          "XMLOutputMeta.CheckResult.FieldsReceived", "" + prev.size() ), stepinfo );
      remarks.add( cr );

      String error_message = "";
      boolean error_found = false;

      // Starting from selected fields in ...
      for ( int i = 0; i < outputFields.length; i++ ) {
        int idx = prev.indexOfValue( outputFields[ i ].getFieldName() );
        if ( idx < 0 ) {
          error_message += "\t\t" + outputFields[ i ].getFieldName() + Const.CR;
          error_found = true;
        }
      }
      if ( error_found ) {
        error_message = BaseMessages.getString( PKG, "XMLOutputMeta.CheckResult.FieldsNotFound", error_message );
        cr = new CheckResult( ICheckResult.TYPE_RESULT_ERROR, error_message, stepinfo );
        remarks.add( cr );
      } else {
        cr =
          new CheckResult( ICheckResult.TYPE_RESULT_OK, BaseMessages.getString( PKG,
            "XMLOutputMeta.CheckResult.AllFieldsFound" ), stepinfo );
        remarks.add( cr );
      }
    }

    // See if we have input streams leading to this step!
    if ( input.length > 0 ) {
      cr =
        new CheckResult( ICheckResult.TYPE_RESULT_OK, BaseMessages.getString( PKG,
          "XMLOutputMeta.CheckResult.ExpectedInputOk" ), stepinfo );
      remarks.add( cr );
    } else {
      cr =
        new CheckResult( ICheckResult.TYPE_RESULT_ERROR, BaseMessages.getString( PKG,
          "XMLOutputMeta.CheckResult.ExpectedInputError" ), stepinfo );
      remarks.add( cr );
    }

    cr =
      new CheckResult( ICheckResult.TYPE_RESULT_COMMENT, BaseMessages.getString( PKG,
        "XMLOutputMeta.CheckResult.FilesNotChecked" ), stepinfo );
    remarks.add( cr );
  }

  public  XmlOutputMeta();

}