[R] R5: Lock a class field from within a method?

David Winsemius dwinsemius at comcast.net
Wed Oct 24 17:09:56 CEST 2012


On Oct 24, 2012, at 2:14 AM, Johannes Graumann wrote:

> Hello,
>
> testclass <- setRefClass(
>  "testclass",
>  fields = list(testfield = "logical"),
>  methods = list(validate=function(){testfield<<-TRUE}))
>
>> test <- testclass$new()
>> test$testfield
> logical(0)
>> test$validate()
>> test$testfield
> [1] TRUE
>
> Works just fine for me.
>
> I would love to be able to do something like
>
> testclass <- setRefClass(
>  "testclass",
>  fields = list(testfield = "logical"),
>  methods = list(validate=function(){
> 	testfield<<-TRUE
> 	.self$lock(testfield)
>  }))
>
> but am unabel to achieve that. Can anyone point out how to go about
> rendering a field immutable after execution of a specific method?
>

The fact that you used only "lock" in your code and I am unable to  
find such a function makes me wonder whether that was an implicit  
psuedo-code effort and that you do not know about:

?lockBinding

-- 

David Winsemius, MD
Alameda, CA, USA




More information about the R-help mailing list