File tree Expand file tree Collapse file tree
com/dengzii/plugin/template/model Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -11,6 +11,11 @@ class FileTreeDsl() : FileTreeNode() {
1111 return this
1212 }
1313
14+ operator fun FileTreeNode.invoke (block : FileTreeDsl .() -> Unit ): FileTreeNode {
15+ block()
16+ return this
17+ }
18+
1419 constructor (parent: FileTreeDsl ? , name: String , isDir: Boolean ) : this () {
1520 this .name = name
1621 this .parent = parent
@@ -43,6 +48,7 @@ class FileTreeDsl() : FileTreeNode() {
4348 .filter {
4449 it.isNotBlank()
4550 }.toMutableList()
51+ println (dirs)
4652 createDirs(dirs, this )(block)
4753 }
4854
@@ -58,20 +64,4 @@ class FileTreeDsl() : FileTreeNode() {
5864 fileTemplates!! [fileName] = template
5965 }
6066
61- private fun createDirs (dirs : MutableList <String >, parent : FileTreeDsl ): FileTreeNode {
62- if (dirs.isEmpty()) {
63- return parent
64- }
65- // the first dir
66- val first = dirs[0 ]
67- dirs.removeAt(0 )
68- val firstDir = FileTreeDsl (parent, first, true )
69- val findChild = getChild(first, true )
70- if (findChild != null ) {
71- return createDirs(dirs, findChild)
72- }
73- addChild(firstDir)
74- // create child dir
75- return createDirs(dirs, firstDir)
76- }
7767}
Original file line number Diff line number Diff line change @@ -224,11 +224,17 @@ open class FileTreeNode() {
224224 if (dirs.isEmpty()) {
225225 return parent
226226 }
227- val current = dirs[0 ]
227+ // the first dir
228+ val first = dirs.first()
228229 dirs.removeAt(0 )
229- val dirNode = FileTreeNode (parent, current, true )
230- addChild(dirNode)
231- return createDirs(dirs, dirNode)
230+ val newNode = FileTreeNode (parent, first, true )
231+ val find = getChild(first, true )
232+ if (find != null ) {
233+ return createDirs(dirs, find)
234+ }
235+ parent.addChild(newNode)
236+ // create child dir
237+ return createDirs(dirs, newNode)
232238 }
233239
234240 /* *
Original file line number Diff line number Diff line change @@ -6,48 +6,49 @@ import org.junit.Test
66class FileTreeDslTest {
77
88 @Test
9- fun createSimpleFileTreeTest (){
9+ fun createSimpleFileTreeTest () {
1010 val tree = FileTreeDsl {
1111 file(" file" )
12- dir(" dir1" ){
12+ dir(" dir1" ) {
1313 file(" file2" )
14- dir(" dir2" ){
15- dir(" dir3" ){
14+ dir(" dir2" ) {
15+ dir(" dir3" ) {
1616 dir(" dir4" )
1717 }
18- dir(" dir5" ){
18+ dir(" dir5" ) {
1919 dir(" dir6" )
2020 dir(" dir9" )
2121 }
2222 }
2323 file(" file3" )
2424 }
25- dir(" dir7" ){
25+ dir(" dir7" ) {
2626 dir(" dir8" )
2727 }
2828 }
2929 println (tree.getTreeGraph())
3030 }
3131
3232 @Test
33- fun createPackageDirTest (){
33+ fun createPackageDirTest () {
3434
3535 val tree = FileTreeDsl {
3636 dir(" src" ) {
37- dir(" com/example/app" ){
37+ dir(" com/example/app" ) {
3838 file(" Main.java" )
3939 }
40- dir(" com/example" )
40+ dir(" com/example/app1 " )
4141 }
4242 file(" README.md" )
4343 }
4444 println (tree.getTreeGraph())
4545 }
46+
4647 @Test
47- fun fileNamePlaceholderTest (){
48+ fun fileNamePlaceholderTest () {
4849 val tree = FileTreeDsl {
49- placeholder(" FILE_1" ," first_file" )
50- placeholder(" FILE_2" ," second_file" )
50+ placeholder(" FILE_1" , " first_file" )
51+ placeholder(" FILE_2" , " second_file" )
5152 file(" \$ {FILE_1}.java" )
5253 file(" \$ {FILE_2}.java" )
5354 dir(" com/exmpale" )
You can’t perform that action at this time.
0 commit comments