Guest User

koans

a guest
Apr 1st, 2020
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 0.69 KB | None | 0 0
  1. open class Tag(val name: String) {
  2.     val children = mutableListOf<Tag>()
  3.     val attributes = mutableListOf<Attribute>()
  4.  
  5.     override fun toString(): String {
  6.         return "<$name" +
  7.                 (if (attributes.isEmpty()) "" else attributes.joinToString(separator = "", prefix = " ")) + ">" +
  8.                 (if (children.isEmpty()) "" else children.joinToString(separator = "")) +
  9.                 "</$name>"
  10.     }
  11. }
  12.  
  13. class Attribute(val name: String, val value: String) {
  14.     override fun toString() = """$name="$value" """
  15. }
  16.  
  17. fun <T : Tag> T.set(name: String, value: String?): T {
  18.     if (value != null) {
  19.         attributes.add(Attribute(name, value))
  20.     }
  21.     return this
  22. }
Advertisement
Add Comment
Please, Sign In to add comment