public TableValueProperty(
     ITableValueProperty other, 
     IListener listener, 
     IPolicies policies, 
     ICompilerMessageBuilder messageProvider, 
     int propertyIndex)
     : base(other, listener, policies, messageProvider, propertyIndex)
 {
     this.DataRowInterfaceName = other.DataRowInterfaceName ?? typeof(object).FullName;
     if (ReferenceEquals(other.DataRowInterfaceName, null))
         listener.Error(messageProvider.MissingDataRowInterfaceName(propertyIndex));
     else if(false == policies.IsValidInterfaceName(this.DataRowInterfaceName))
         listener.Error(messageProvider.InvalidDataRowInterfaceName(this.DataRowInterfaceName, propertyIndex));
 }