public RegexConditionAdaptor(Predicate <TSource> condition, AdaptDelegate <TTarget, TSource> targetAdaptor) :
     this(
         condition,
        /// <summary>
        /// This function is able to adapt the property grid from
        /// another thread
        /// </summary>
        public void AsyncAdapt()
        {
            //this is a check if there is a box selected
            //if it is not, we should not do anything, because it
            //would throw a weird exception and I dont know how to
            //solve it...
            if (propertyBag.Properties.Count == 0)
            {
                return;
            }

            // InvokeRequired required compares the thread ID of the
            // calling thread to the thread ID of the creating thread.
            // If these threads are different, it returns true.
            if (this.InvokeRequired)
            {
                AdaptDelegate d = new AdaptDelegate(AsyncAdapt);
                this.Invoke(d);
            }
            else
            {
                this.Adapt();
            }
        }
 public AdaptContextInfo(AdaptDelegate <TSource, TTarget> sourceAdaptor, AdaptDelegate <TTarget, TSource> targetAdaptor)
 {
     this.SourceAdaptor = sourceAdaptor ?? (source => default(TTarget));
     this.TargetAdaptor = targetAdaptor ?? (target => default(TSource));
 }
 public ConstAdaptorRegexFATransition(
     Predicate <TSource> predicate,
     AdaptDelegate <TSource, TTarget> sourceAdaptor, AdaptDelegate <TTarget, TSource> targetAdaptor
     ) :
     this(
         predicate ?? throw new ArgumentNullException(nameof(predicate)),