5 Commits

5 changed files with 18 additions and 15 deletions

View File

@ -22,7 +22,7 @@ val poland = TreeNode("Poland")
val france = TreeNode("France") val france = TreeNode("France")
europe.addChild(poland) europe.addChild(poland)
europe.addChild(france) europe.addChild(france)
println(root) println(root.prettyString())
``` ```
**Pretty Kotlin** **Pretty Kotlin**
@ -55,7 +55,7 @@ TreeNode<String> poland = new TreeNode<>("Poland");
TreeNode<String> france = new TreeNode<>("France"); TreeNode<String> france = new TreeNode<>("France");
europe.addChild(poland); europe.addChild(poland);
europe.addChild(france); europe.addChild(france);
System.out.println(root); System.out.println(root.prettyString());
``` ```
*Output:* *Output:*

View File

@ -15,7 +15,7 @@ android {
minSdkVersion 15 minSdkVersion 15
targetSdkVersion 29 targetSdkVersion 29
versionCode 1 versionCode 1
versionName "1.2.0" versionName "1.2.3"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
consumerProguardFiles 'consumer-rules.pro' consumerProguardFiles 'consumer-rules.pro'

View File

@ -15,7 +15,8 @@ interface ChildDeclarationInterface<T> {
* } * }
* } * }
* ``` * ```
* @return New created TreeNode.
*/ */
@JvmSynthetic @JvmSynthetic
fun child(value: T, childDeclaration: ChildDeclaration<T>? = null) fun child(value: T, childDeclaration: ChildDeclaration<T>? = null): TreeNode<T>
} }

View File

@ -27,11 +27,12 @@ open class TreeNode<T>(val value: T) : Iterable<TreeNode<T>>, ChildDeclarationIn
} }
@JvmSynthetic @JvmSynthetic
override fun child(child: T, childDeclaration: ChildDeclaration<T>?) { override fun child(value: T, childDeclaration: ChildDeclaration<T>?): TreeNode<T> {
val newChild = TreeNode(value) val newChild = TreeNode(value)
if(childDeclaration != null) if(childDeclaration != null)
newChild.childDeclaration() newChild.childDeclaration()
_children.add(newChild) _children.add(newChild)
return newChild
} }
/** /**
@ -91,6 +92,10 @@ open class TreeNode<T>(val value: T) : Iterable<TreeNode<T>>, ChildDeclarationIn
} }
override fun toString(): String { override fun toString(): String {
return value.toString()
}
fun prettyString(): String {
val stringBuilder = StringBuilder() val stringBuilder = StringBuilder()
print(stringBuilder, "", "") print(stringBuilder, "", "")
return stringBuilder.toString() return stringBuilder.toString()

View File

@ -128,18 +128,15 @@ class TreeNodeTest {
europe.addChild(poland) europe.addChild(poland)
europe.addChild(france) europe.addChild(france)
val rootExt = treeNode("World") { val rootExt = tree("World") {
treeNode("North America") { child("North America") {
treeNode("USA") child("USA")
} }
treeNode("Europe") { child("Europe") {
treeNode("Poland") child("Poland")
treeNode("France") child("France")
} }
} }
println(root) assertEquals(root.prettyString(), rootExt.prettyString())
assertEquals(root.toString(), rootExt.toString())
} }
} }