Fukurama::Class::Attributes::OOStandard::DefinitionCheck - Helper-class to check syntax of code attributes


Version 0.03 (beta)


- (its only a collection of methods, it's unusable outside of it's own context :)


A Helper class for Fukurama::Class::Attributes::OOStandard to check code attribute syntax.




get_translated_def( sub_data:\HASH, def:\HASH, sub_def:\ARRAY, result_def:\ARRAY, array_result_def:\ARRAY, para_def:\ARRAY, opt_para_def:\ARRAY) return:\HASH

Translate the given attribute data (e.g. static|void|string) into an wellformed hash which contain all definitions include implizit definitions.

set_type( type:STRING ) return:VOID

Set the type-name of the actual checked code attribute. It's only for error messages.

throw_def_error( sub_data:\HASH, msg:STRING) return:VOID

Died with the given message and output some detailed informations about the involved method(s).

resolve_def( sub_data:\HASH ) return:VOID

Resolved the method name from a given subroutine code reference.

try_check_translated_def( sub_data:\HASH, translated_def:\HASH, def:\HASH ) return:VOID

Check all defintions of the given code attribute declaration.

decorate_sub( def:\HASH ) return:VOID

Decorates subroutines with a check method to check parameter and return values.

try_check_parameter( id:STRING, io_list:\ARRAY ) return:VOID

Check the content of the parameter list for a subroutine.

try_check_result( id:SRING, io_list:\ARRAY, list_context:BOOLEAN ) return:VOID

Check the content of the return value(s) for a subroutine.

try_check_abstract( id:STRING ) return:VOID

Check the caller of a subroutine, to avoid directly called, abstract methods.

try_check_access( id:STRING ) return:VOID

Check the caller of a subroutine, to avoid unauthorized calls for e.g. private methods from outside the own class.

try_check_call( id:STRING, class_parameter:SCALAR ) return:VOID

Check the first argument of the method for static or nonstatic calls and the correct usage.

check_inheritation( method_name:STRING, parent_class:CLASS, child_class:CLASS, inheritation_type:STRING ) return:VOID

Check the inheritations of all defined declarations to avoid differend method signatures for parent and child.


see perldoc of Fukurama::Class