Definition of parameters
Mosel parameters are scalars of one of the four basic types (real/integer/string/boolean). Packages can define new parameters by declaring their names and type in the parameters section. The package needs to store the current values of the parameters in separate model entities and will usually initialize default values for the parameters.
package parpkg ! Specify parameter names and types parameters "p1":real "p2":integer "p3":string "p4":boolean end-parameters ! Entities for storing current parameter values declarations myp1: real myp2: integer myp3: string myp4: boolean end-declarations ! Set default values for parameters myp1:=0.25 myp2:=10 myp3:="default" myp4:=true !... Parameter access routines ... end-package
The access routines for the four parameter types have a fixed format, namely packagename∼get[r|i|s|b]param and packagename∼set[r|i|s|b]param as shown in the code extract below.
! Get value of a real parameter public function parpkg~getrparam(p:string):real case p of "p1": returned:=myp1 end-case end-function ! Get value of an integer parameter public function parpkg~getiparam(p:string):integer case p of "p2": returned:=myp2 end-case end-function ! Get value of a string parameter public function parpkg~getsparam(p:string):string case p of "p3": returned:=myp3 end-case end-function ! Get value of a boolean parameter public function parpkg~getbparam(p:string):boolean case p of "p4": returned:=myp4 end-case end-function ! Set value for real parameters public procedure parpkg~setparam(p:string,v:real) case p of "p1": myp1:=v end-case end-procedure ! Set value for integer parameters public procedure parpkg~setparam(p:string,v:integer) case p of "p2": myp2:=v end-case end-procedure ! Set value for string parameters public procedure parpkg~setparam(p:string,v:string) case p of "p3": myp3:=v end-case end-procedure ! Set value procedure for boolean parameters public procedure parpkg~setparam(p:string,v:boolean) case p of "p4": myp4:=v end-case end-procedure
A model using the package 'parpkg' will access the package parameters via Mosel's standard getparam and setparam routines ( the parameter names are not case-sensitive and their names can be preceded by the package name).
model "Packages with parameters" uses 'parpkg' ! Display default parameter values writeln("Default values:", " p1=", getparam("parpkg.P1"), " p2=", getparam("P2"), " p3=", getparam("parpkg.p3"), " p4=", getparam("p4")) ! Change values setparam("p1",133) setparam("parpkg.p2",-77) setparam("P3","tluafed") setparam("parpkg.P4",not getparam("parpkg.P4")) end-model
© 2001-2020 Fair Isaac Corporation. All rights reserved. This documentation is the property of Fair Isaac Corporation (“FICO”). Receipt or possession of this documentation does not convey rights to disclose, reproduce, make derivative works, use, or allow others to use it except solely for internal evaluation purposes to determine whether to purchase a license to the software described in this documentation, or as otherwise set forth in a written software license agreement between you and FICO (or a FICO affiliate). Use of this documentation and the software described in it must conform strictly to the foregoing permitted uses, and no other use is permitted.