在参考类中定义字段时的有效性测试错误

时间:2018-07-13 03:28:48

标签: r validation reference-class

上下文

我已经定义了两个RC。第一个是VectorCharacterElements。我已经为其分配了有效性测试。

VectorCharacterElements <- setRefClass(
  "VectorCharacterElements",
  fields = list(vec = "character", el1 = "character", el2 = "character")
)

ValidVectorCharacterElements <- function(object) {
  if (length(object$vec) < 2) {
    cat("Length of `vec` must be greater than or equal to two.")
    cat("\n")
    return(F)
  } 
  return(T)
}

setValidity("VectorCharacterElements", ValidVectorCharacterElements)

我正在尝试定义第二个RC VectorCharacterElementsDistance。它使用VectorCharacterElements作为字段。

VectorCharacterElementsDistance <- setRefClass(
  "VectorCharacterElementsDistance",
  fields = list(vce = "VectorCharacterElements", d = "numeric")
)

但是,运行上述代码时出现错误。

  

vec的长度必须大于或等于2。错误中   validObject(.Object):无效的类“ VectorCharacterElements”   对象:FALSE

该错误来自我为VectorCharacterElements定义的验证方法。

问题

如何保持对VectorCharacterElements的验证,并确保vceVectorCharacterElements的类型为VectorCharacterElementsDistance

观察

如果我使用contains,错误将不会出现。

VectorCharacterElementsDistance <- setRefClass(
  "VectorCharacterElementsDistance",
  contains = "VectorCharacterElements",
  fields = list(d = "numeric")
)

但是,我想避免从VectorCharacterElements继承。

0 个答案:

没有答案