Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class MultiLevel_encapsulation {
- var separator = "";
- var datas:[String:String] = [:]
- func wrap() -> String{
- var out:String = ""
- var i = 0
- for (key, data) in datas{
- if i==0{
- out += key + separator + data
- }
- else{
- out += separator + key + separator + data
- }
- i+=1
- }
- return out
- }
- func unwrap(content:String){
- let split = content.components(separatedBy: separator)
- var i = 1
- while(i < split.count){
- datas[split[i-1]] = split[i]
- i += 2
- }
- }
- func getAttributesNames() -> [String]{
- var out:[String] = []
- for (key, _) in datas{
- out.append(key)
- }
- return out
- }
- func getValue(name:String) -> String? {
- return datas[name];
- }
- func setValue(name:String, value:String){
- datas[name] = value;
- }
- }
- class Level5_encapsulation: MultiLevel_encapsulation{
- init(message:String) {
- super.init()
- separator = "&&LEVEL5&&"
- unwrap(content:message)
- }
- override init() {
- super.init()
- separator = "&&LEVEL5&&"
- }
- }
- var l5message = Level5_encapsulation()
- l5message.setValue(name: #anyTitle#, value: #anyValue#)
- var output = l5message.wrap() // String with encapsulated message
- Variable 'l5message' was never mutated; consider changing to 'let' constant
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement