     # mainly is used to exclude or account for abstract classes.
     # Once inherited from, the inheritee is not abstract anymore.
     @abstract yes
+
+    # This is a polymorphic, simple yet powerfull validation tool
+    # that is intended to be used primarily on the server site for
+    # the purpose of validating data that came in from a formular.
+    # It is adapted to the formular protocol, attuned to specific
+    # data protocol that is used inside of it. Reference a coding.
+    @validator: (data) -> (id, check, message) ->
+        assert _.isArray(data), "got invalid data object"
+        assert _.isString(id), "got invalid identification"
+        assert _.isString(message), "got no fail message"
+        object = _.find data, (rec) -> rec.identity is id
+        assert _.isPlainObject(object), "no #{id} object"
+        conditions = -> (object.checked or false) is yes
+        functional = -> check.call object, object.value
+        expression = -> check.test object.value or null
+        select = _.isBoolean(check) and not conditions()
+        method = _.isFunction(check) and not functional()
+        regexp = _.isRegExp(check) and not expression()
+        failure = (method or regexp or select) or false
+        return object.warning = message if failure
 
     # This is the initialization method that creates a form within
     # the specified hosting element (or selector) and then runs the

SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
###

{Zombie} = require "../nucleus/zombie"
{remote} = require "../membrane/remote"
{Archetype} = require "../nucleus/archetype"

            handle.identity = try identity.toString()
            handle.value = $(input).val() or undefined
            handle.checked = try $(input).is ":checked"
            value.data warning: 0, error: null if reset
            do -> handle.warning = value.data "warning"
            handle.error = value.data "error"; handle
