/// <summary>
 /// Constructor.  Null parameters will be converted to empty strings.  Simple validation issues may not
 /// have a recommendation.  More complex problems, for example when cross-checking dataset components, may have
 /// a correspondingly more complex recommendation. </summary>
 /// <param name="data"> object that has the problem. </param>
 /// <param name="problem"> description of validation problem. </param>
 /// <param name="recommendation"> recommendation of how to correct the problem. </param>
 public StateCU_ComponentValidationProblem(StateCU_ComponentValidator data, string problem, string recommendation)
 {
     __problem = problem;
     if (string.ReferenceEquals(__problem, null))
     {
         __problem = "";
     }
     __data           = data;
     __recommendation = recommendation;
     if (string.ReferenceEquals(__recommendation, null))
     {
         __recommendation = "";
     }
 }
        /// <summary>
        /// Performs specific data checks for a component.  The
        /// intelligence and checks are stored in the component itself. </summary>
        /// <param name="data"> List of data objects to check. </param>
        /// <returns> List of data that failed the data checks. </returns>
        private System.Collections.IList doSpecificDataChecks(IList <StateCU_ComponentValidator> data, PropList props)
        {
            System.Collections.IList checks = new List <object>();
            if (data == null)
            {
                return(checks);
            }
            // Check each component object by calling the
            // checkComponentData() method.  Each component
            // needs to implement this method and extend from
            // the StateMod_Component interface
            StateCU_ComponentValidator comp = null;

            for (int i = 0; i < data.Count; i++)
            {
                comp = data[i];
                StateCU_ComponentValidation validation = comp.validateComponent(__dataset);
                if (validation.size() > 0)
                {
                    checks.Add(validation.getAll());
                }
            }
            return(checks);
        }