goanna/handler.go
func (handler ControllerHandler) isValid() bool {
	controller := handler.factory()
	rController := reflect.ValueOf(controller)
	method := rController.MethodByName(handler.methodName)
	if (method == reflect.Value{}) {
		panic("No such method: " + handler.methodName)
	}
	typeOfMethod := method.Type()

	var r *Response
	responseType := reflect.TypeOf(r).Elem()

	return (method.Kind() == reflect.Func) &&
		(typeOfMethod.NumMethod() == 0) &&
		(typeOfMethod.NumOut() == 1) &&
		typeOfMethod.Out(0) == responseType

}
func (handler ControllerHandler) isValid() bool {
	controller := handler.factory()
	rController := reflect.ValueOf(controller)
	method := rController.MethodByName(handler.methodName)
	if (method == reflect.Value{}) {
		panic("No such method: " + handler.methodName)
	}
	typeOfMethod := method.Type()

	var r *Response
	responseType := reflect.TypeOf(r).Elem()

	return (method.Kind() == reflect.Func) &&
		(typeOfMethod.NumMethod() == 0) &&
		(typeOfMethod.NumOut() == 1) &&
		typeOfMethod.Out(0) == responseType

}
func ( handler ControllerHandler ) isValid ( ) bool { controller := handler . factory ( ) rController := reflect . ValueOf ( controller ) method := rController . MethodByName ( handler . methodName ) if ( method == reflect . Value { } ) { panic ( " " + handler . methodName ) } typeOfMethod := method . Type ( ) var r * Response responseType := reflect . TypeOf ( r ) . Elem ( ) return ( method . Kind ( ) == reflect . Func ) && ( typeOfMethod . NumMethod ( ) == 0 ) && ( typeOfMethod . NumOut ( ) == 1 ) && typeOfMethod . Out ( 0 ) == responseType }
// isValid checks that the controller and method specifies
// will sucessfully execute if getResponse is called on it
isValid checks that the controller and method specifies will sucessfully execute if getResponse is called on it