if {"$access" != "" && "$access" != "Public-Public"} {
if {[get_class_visibility $class] == "Public"} {
ada_error "Class '[get_name $class]' with 'Public' visibility has link or association attribute '[get_name $attrib]' with '[get_assoc_access $attrib]' access"
}
}
if {[get_opposite $attrib] != ""} {
set type [get_type $attrib]
if {[get_class_visibility $class] != "Opaque" || \
[get_class_visibility $type] != "Opaque"} {
ada_error "Class '[get_name $class]' has a bidirectional association to class '[get_name $type]' - this is currently unsupported"
}
}
}
#
# procedure operation::check
#
if {[info commands operation::check_pre_ada] == ""} {
rename operation::check operation::check_pre_ada
}
proc operation::check {oper class} {
operation::check_pre_ada $oper $class
set name [get_name $oper]
if {[is_oper $name]} {
set type [get_type $oper]
if {[get_name $type] == ""} {
ada_error "Operation $name of class '[get_name $class]' must have a return type"
}
}
}
#
# procedure parameter::check
#
if {[info commands parameter::check_pre_ada] == ""} {
ada_error "Mode of parameter '[get_name $param]' in operation '[get_name $oper]' of class '[get_name $class]' returning '[get_name $type]' must be 'in'"
}
}
}
#
# redefined procedures from product-tcl/check_conf.tcl:
#
#
# procedure add_predefined_methods
#
proc add_predefined_methods {ooplmodel} {
#
# Call user-supplied function to add methods
#
if {[info procs add_user_defined_methods] != ""} {
add_user_defined_methods $ooplmodel
}
}
#
# redefined procedures from product-tcl/prep_funcs.tcl
#
proc data_attrib::prepare {attrib class model forwhat} {