Class ::xowiki::ParameterCache

::xowiki::ParameterCache[i] create ...

Class Relations

  • class: ::xotcl::Class[i]
  • superclass: ::xotcl::Object[i]
  • instmixinof: ::xowiki::Package[i]
::xotcl::Class create ::xowiki::ParameterCache \
     -superclass ::xotcl::Object

Methods (to be applied on instances)

  • get_parameter (scripted)

    #ns_log notice "check for parameter $attribute, xo::cc exists <[info commands ::xo::cc]>"
    if {$nocache} {
      next
    } else {
      #
      # Cache the parameter value regardless of the notation with
      # "name:valueconstraint"
      #
      regexp {^([^:]+):.*$} $attribute _ attribute
    
      set key [list ${:id} [self proc] $attribute]
      if {[nsf::is object "::xo::cc"]} {
        if {[::xo::cc cache_exists $key]} {
          return [::xo::cc cache_get $key]
        }
        return [::xo::cc cache_set $key [next]]
      } else {
        # in case, we have no ::xo::cc (e.g. during bootstrap).
        ad_log warning "no ::xo::cc available (package_id ${:id}), returning default for parameter $attribute"
    
        #
        # For more rigid debugging one might consider to enable the
        # exception below.
        #
        #error "no ::xo::cc available (package_id ${:id}), returning default for parameter $attribute"
    
        return $default
      }
    }