@@ -18,12 +18,7 @@ import java.util.*
1818</pre> */
1919open class FileTreeNode private constructor() {
2020
21- // the backing field is 'realName'
22- var name: String
23- get() = realName.replacePlaceholder(placeholders)
24- set(value) {
25- realName = value
26- }
21+ var name: String = " "
2722
2823 var isDir = true
2924 var children
@@ -44,11 +39,12 @@ open class FileTreeNode private constructor() {
4439 get() = field ? : parent?.fileTemplates
4540
4641 private var realChildren = mutableSetOf<FileTreeNode >()
47- // the origin name with original placeholder
48- private var realName: String = " "
42+
4943 // the label composed by 'name' and 'isDir'.
50- @Transient private val labeledChildren = mutableMapOf<String , FileTreeNode >()
51- @Transient var parent: FileTreeNode ? = null
44+ @Transient
45+ private val labeledChildren = mutableMapOf<String , FileTreeNode >()
46+ @Transient
47+ var parent: FileTreeNode ? = null
5248
5349 companion object {
5450
@@ -107,7 +103,7 @@ open class FileTreeNode private constructor() {
107103
108104 fun hasChild (name : String , isDir : Boolean ): Boolean {
109105 children.forEach {
110- if (it.isDir == isDir && it.realName == name ) {
106+ if (it.name == name && isDir == it.isDir ) {
111107 return true
112108 }
113109 }
@@ -119,11 +115,10 @@ open class FileTreeNode private constructor() {
119115 }
120116
121117 /* *
122- * get the origin name without replace with placeholder
123- * real name is the value when you set field 'name'
118+ * get the real name replace with placeholder
124119 */
125120 fun getRealName (): String {
126- return realName
121+ return name.replacePlaceholder(placeholders)
127122 }
128123
129124 fun fileTemplate (fileName : String , template : String ) {
@@ -134,11 +129,11 @@ open class FileTreeNode private constructor() {
134129 }
135130
136131 fun hasFileTemplate (): Boolean {
137- return template != null || fileTemplates?.containsKey(realName ) == true
132+ return template != null || fileTemplates?.containsKey(name ) == true
138133 }
139134
140135 fun getTemplateName (): String? {
141- return template ? : fileTemplates?.get(realName )
136+ return template ? : fileTemplates?.get(name )
142137 }
143138
144139 fun placeholder (name : String , value : String ) {
@@ -258,10 +253,10 @@ open class FileTreeNode private constructor() {
258253 * @return The intact path of current node
259254 */
260255 fun getPath (): String {
261- if (isRoot() || parent == null || parent!! .name == " " ) {
262- return name
256+ if (isRoot() || parent == null || parent!! .getRealName() == " " ) {
257+ return getRealName()
263258 }
264- return parent!! .getPath() + " /" + name
259+ return parent!! .getPath() + " /" + getRealName()
265260 }
266261
267262 fun isRoot (): Boolean {
@@ -306,7 +301,7 @@ open class FileTreeNode private constructor() {
306301 parent?.children?.first() -> " ├─"
307302 else -> if (parent?.parent != null ) " ├─" else " ┌─"
308303 })
309- str.append(name ).append(" \n " )
304+ str.append(getRealName() ).append(" \n " )
310305
311306 if (! children.isNullOrEmpty()) {
312307 head.push(when {
@@ -342,7 +337,7 @@ open class FileTreeNode private constructor() {
342337 }
343338
344339 private fun getLabel (): String {
345- return " name_ $isDir "
340+ return " ${name} _ $isDir "
346341 }
347342
348343 override fun toString (): String {
0 commit comments