/// <summary>
 /// Adds all objects from the given source to this memory data source.
 /// </summary>
 /// <param name="source"></param>
 public void PullFromSource(DataProcessorSource source)
 {
     // create a special memory data source target.
     MemoryDataSourceProcessorTarget target = new MemoryDataSourceProcessorTarget(this);
     target.RegisterSource(source); // register the given source as the source.
     target.Pull(); // pull the data from the source into the created target.
 }
 /// <summary>
 /// Registers a source on this target.
 /// </summary>
 /// <param name="source"></param>
 public void RegisterSource(DataProcessorSource source)
 {
     _source = source;
 }
        /// <summary>
        /// Registers the source of this filter.
        /// </summary>
        /// <param name="source"></param>
        public override void RegisterSource(DataProcessorSource source)
        {
            if (_wayKeepNodes || _relationKeepObjects)
            {
                if (!source.CanReset)
                {
                    throw new ArgumentException("The tags data processor source cannot be reset!",
                        "source");
                }
            }

            base.RegisterSource(source);
        }