package waymaker.gen; // Copyright © 2015 Michael Allan.  Licence MIT.


/** A ding that signifies a change.
  */
public @ThreadSafe final class Changed implements Ding<Changed>
{


    private Changed() { source = new ReRinger<Changed>( this ); }



   // --------------------------------------------------------------------------------------------------


    /** Constructs a Changed and returns a re-ringer that emits it.
      */
    public static ReRinger<Changed> newReRinger() { return (ReRinger<Changed>)new Changed().source; }



   // - D i n g ----------------------------------------------------------------------------------------


    public Bell<Changed> source() { return source; }


        private final Bell<Changed> source;


}