in Sources/MockoloFramework/Templates/VariableTemplate.swift [21:82]
func applyVariableTemplate(name: String,
type: Type,
encloser: String,
isStatic: Bool,
customModifiers: [String: Modifier]?,
allowSetCallCount: Bool,
shouldOverride: Bool,
accessLevel: String) -> String {
let underlyingSetCallCount = "\(name)\(String.setCallCountSuffix)"
let underlyingVarDefaultVal = type.defaultVal()
var underlyingType = type.typeName
if underlyingVarDefaultVal == nil {
underlyingType = type.underlyingType
}
let propertyWrapper = propertyWrapper != nil ? "\(propertyWrapper!) " : ""
let overrideStr = shouldOverride ? "\(String.override) " : ""
var acl = accessLevel
if !acl.isEmpty {
acl = acl + " "
}
var assignVal = ""
if !shouldOverride, let val = underlyingVarDefaultVal {
assignVal = "= \(val)"
}
let privateSetSpace = allowSetCallCount ? "" : "\(String.privateSet) "
let setCallCountStmt = "\(underlyingSetCallCount) += 1"
let modifierTypeStr: String
if let customModifiers = self.customModifiers,
let customModifier: Modifier = customModifiers[name] {
modifierTypeStr = customModifier.rawValue + " "
} else {
modifierTypeStr = ""
}
var template = ""
if isStatic || underlyingVarDefaultVal == nil {
let staticSpace = isStatic ? "\(String.static) " : ""
template = """
\(1.tab)\(acl)\(staticSpace)\(privateSetSpace)var \(underlyingSetCallCount) = 0
\(1.tab)\(propertyWrapper)\(staticSpace)private var \(underlyingName): \(underlyingType) \(assignVal) { didSet { \(setCallCountStmt) } }
\(1.tab)\(acl)\(staticSpace)\(overrideStr)\(modifierTypeStr)var \(name): \(type.typeName) {
\(2.tab)get { return \(underlyingName) }
\(2.tab)set { \(underlyingName) = newValue }
\(1.tab)}
"""
} else {
template = """
\(1.tab)\(acl)\(privateSetSpace)var \(underlyingSetCallCount) = 0
\(1.tab)\(propertyWrapper)\(acl)\(overrideStr)\(modifierTypeStr)var \(name): \(type.typeName) \(assignVal) { didSet { \(setCallCountStmt) } }
"""
}
return template
}