Class ::xo::parameter
::xo::parameter
create ...
Class Relations
- class: ::xotcl::Class
![[i]](/resources/acs-subsite/ZoomIn16.gif)
- superclass: ::xotcl::Object
![[i]](/resources/acs-subsite/ZoomIn16.gif)
- instmixinof: ::xo::db::apm_parameter
![[i]](/resources/acs-subsite/ZoomIn16.gif)
::xotcl::Class create ::xo::parameter \
-superclass ::xotcl::Object
Methods (to be applied on the object)
get (scripted)
if {![info exists package_id]} {
set package_id [expr {[nsf::is object ::xo::cc] ?
[::xo::cc package_id] :
[ns_conn isconnected] ? [ad_conn package_id] : $::acs::kernel_id}]
}
ad_log_deprecated proc "xo::parameter get -parameter $parameter" parameter::get
return [::parameter::get -parameter $parameter -package_id $package_id {*}[expr {[info exists default] ? [list -default $default] : ""}]]
set parameter_obj [:get_parameter_object -parameter_name $parameter -package_id $package_id -retry $retry]
if {$parameter_obj ne ""} {
set value [$parameter_obj get -package_id $package_id]
if {$value eq "" && [$parameter_obj set __success] == 0} {
return $default
}
return $value
} else {
return $default
}get_from_package_key (scripted)
set parameter_obj [:get_parameter_object -package_key $package_key -parameter_name $parameter]
if {$parameter_obj eq ""} {
if {[info exists default]} {return $default}
error "No parameter '$parameter' for package_key '$package_key' defined"
}
set package_id [:get_package_id_from_package_key -package_key $package_key]
set value [$parameter_obj get -package_id $package_id]
if {$value eq "" && [$parameter_obj set __success] == 0 && [info exists default]} {
return $default
} else {
return $value
}get_package_id_from_package_key (scripted)
return [ns_cache eval xotcl_package_cache package_id-$package_key {
::xo::dc get_value get_package_id {
select package_id
from apm_packages
where package_key = :package_key
fetch first 1 rows only
}
}]get_package_key_from_id (scripted)
return [apm_package_key_from_id $package_id]
get_parameter_object (scripted)
if {![info exists package_key]} {
set package_key [:get_package_key_from_id -package_id $package_id]
}
while {$package_key ne ""} {
set key Parameter_id($package_key,$parameter_name)
if {[info exists :$key]} {
return [set :$key]
}
set success 0
set pkg_class [::xo::PackageMgr get_package_class_from_package_key $package_key]
if {$pkg_class ne ""} {
set sc [$pkg_class info superclass]
if {[$sc exists package_key]} {
set package_key [$sc package_key]
set success 1
}
}
if {!$success} break
}
if {$retry} {
set r [::xo::db::apm_parameter instantiate_objects -sql [::xo::db::apm_parameter instance_select_query -where_clause {
and parameter_name = :parameter_name
and package_key = :package_key
}] -object_class ::xo::db::apm_parameter -ignore_missing_package_ids true -as_ordered_composite false -named_objects true -destroy_on_cleanup false]
if {$r ne ""} {
if {![info exists package_id]} {
set package_id ""
}
return [:get_parameter_object -retry false -parameter_name $parameter_name -package_id $package_id -package_key $package_key]
}
}
return ""initialize_parameters (scripted)
xo::dc foreach get_non_default_values {
select p.parameter_id, p.package_key, v.package_id, p.parameter_name,
p.default_value, v.attr_value
from apm_parameters p, apm_parameter_values v
where p.parameter_id = v.parameter_id
and coalesce(attr_value,'') <> coalesce(p.default_value,'')
and package_id is not null
} {
$parameter_id set_per_package_instance_value $package_id $attr_value
}set_value (scripted)
if {![info exists package_id]} {
set package_id [expr {[nsf::is object ::xo::cc] ?
[::xo::cc package_id] :
[ns_conn isconnected] ? [ad_conn package_id] : $::acs::kernel_id}]
}
ad_log_deprecated proc "xo::parameter set_value -parameter $parameter" parameter::set_value
return [::parameter::set_value -package_id $package_id -parameter $parameter -value $value]
set parameter_obj [:get_parameter_object -parameter_name $parameter -package_id $package_id]
if {$parameter_obj ne ""} {
$parameter_obj set_per_package_instance_value $package_id $value
} else {
error "could not create parameter object"
}
Methods (to be applied on instances)
clear_per_package_instance_value (scripted)
set array [:per_package_id_name $package_id]
if {[nsv_dict exists $array $package_id ${:parameter_name}]} {
nsv_dict unset $array $package_id ${:parameter_name}
}get (scripted)
set array [:per_package_id_name $package_id]
if {[nsv_dict get -varname result $array $package_id ${:parameter_name}]} {
set :__success 1
return $result
}
set :__success 0
return ${:default_value}initialize_loaded_object (scripted)
[self class] set Parameter_id(${:package_key},${:parameter_name}) [self]per_package_id_name (scripted)
xo::show_stack
return CFG-[expr {$package_id % 2}]set_per_package_instance_value (scripted)
set array [:per_package_id_name $package_id]
ns_log notice "[list nsv_dict set $array $package_id ${:parameter_name} $value]"
xo::show_stack
nsv_dict set $array $package_id ${:parameter_name} $value