** Models a Fantom 'using' statement.
class PlasticUsingModel {
Str? usingStr
new makeFromPod(Pod pod) {
this.usingStr = pod.name
}
new makeFromType(Type type, Str? usingAs := null) {
this.usingStr = type.qname
if (usingAs != null)
this.usingStr += " as ${usingAs}"
}
new makeFromStr(Str usingStr) {
if (usingStr.trim.lower.startsWith("using "))
throw PlasticErr("UsingStr '${usingStr}' must not start with 'using'")
this.usingStr = usingStr
}
Str toFantomCode() {
"using ${usingStr}\n"
}
@NoDoc
override Str toStr() {
toFantomCode
}
@NoDoc
override Bool equals(Obj? that) {
(that as PlasticUsingModel)?.usingStr?.lower == usingStr.lower
}
@NoDoc
override Int hash() {
usingStr.lower.hash
}
}