package org.requirementsascode;

/**
 * Implement this interface to specify a model that describes a behavior: which
 * messages are consumed, and which responses are produced. See See
 * <a href="https://github.com/bertilmuth/requirementsascode">the requirements
 * as code website</a> for examples.
 * 
 */
public interface BehaviorModel {
	/**
	 * A model that defines which messages are consumed and which responses are
	 * produced. See See
	 * <a href="https://github.com/bertilmuth/requirementsascode">the requirements
	 * as code website</a> for examples.
	 * 
	 * @return the behavior model
	 */
	Model model();

	/**
   * The default response is the response that a behavior returns when a message
   * is just consumed (via a <code>.system(...)</code> definition in the model),
   * or when a handler function returns null.
   * 
   * @return the default response, null by default. Override this method to
   *         provide a non-null default response.
   */
  default Object defaultResponse() {
    return null;
  }
}

@@ -339,14 +339,16 @@
 l %7B%0A
-%09
+  
 /**%0A
-%09
+  
  * A
@@ -419,17 +419,18 @@
 ses are%0A
-%09
+  
  * produ
@@ -442,17 +442,18 @@
 See See%0A
-%09
+  
  * %3Ca hr
@@ -523,17 +523,18 @@
 rements%0A
-%09
+  
  * as co
@@ -566,14 +566,16 @@
 es.%0A
-%09
+  
  * %0A
-%09
+  
  * @
@@ -604,14 +604,16 @@
 del%0A
-%09
+  
  */%0A
-%09
+  
 Mode
@@ -628,9 +628,10 @@
 );%0A%0A
-%09
+  
 /**%0A

Improve layout