@@ -29,6 +29,7 @@ object Config {
2929 Module .create(AucTemplate .EXPORT , " export" , " com.example.feature" , " Java" , " Auc Export Module" )
3030 )
3131
32+
3233 fun clear () {
3334 PropertiesComponent .getInstance().unsetValue(KEY_TEMPLATES )
3435 }
@@ -43,92 +44,35 @@ object Config {
4344 Logger .d(Config ::class .java.simpleName, " loadModuleTemplates" )
4445 arr.forEach {
4546 try {
46- result.add(Serializer .deserializeModuleTemplate(it))
47+ val module = GSON .fromJson(it, Module ::class .java)
48+ setParent(module.template)
49+ println (module.template.getTreeGraph())
50+ result.add(module)
4751 } catch (e: Exception ) {
4852 clear()
4953 e.printStackTrace()
5054 return result
5155 }
5256 }
57+ result.addAll(DEFAULT_MODULE_TEMPLATE )
5358 return result
5459 }
5560
5661 fun saveModuleTemplates (templates : List <Module >) {
5762 val t = mutableListOf<String >()
5863 templates.forEach {
59- t.add(Serializer .serializeModuleTemplate (it))
64+ t.add(GSON .toJson (it))
6065 Logger .d(Config ::class .java.simpleName, " saveModuleTemplates ${t[t.lastIndex]} " )
6166 }
6267 PropertiesComponent .getInstance().setValues(KEY_TEMPLATES , t.toTypedArray())
6368 }
6469
65-
66- private object Serializer {
67-
68- fun serializeModuleTemplate (module : Module ): String {
69- val serialTreeNode = serializeTreeNode(module.template)
70- val result = SerialModule (serialTreeNode, module.name, module.packageName, module.language, module.templateName)
71- return GSON .toJson(result)
72- }
73-
74- fun deserializeModuleTemplate (json : String ): Module {
75- val serialModule = GSON .fromJson(json, SerialModule ::class .java)
76- val fileTreeNode = deserializeTreeNode(serialModule.template)
77- return Module .create(fileTreeNode, serialModule.name, serialModule.packageName,
78- serialModule.language, serialModule.templateName)
79- }
80-
81- private fun deserializeTreeNode (treeNode : SerialTreeNode ): FileTreeNode {
82- val fileTreeNode = FileTreeNode {
83- name = treeNode.name
84- isDir = treeNode.isDir
85- template = treeNode.template
86- fileTemplates = treeNode.fileTemplate
87- placeHolderMap = treeNode.placeholders
70+ private fun setParent (node : FileTreeNode ) {
71+ node.children.forEach {
72+ it.parent = node
73+ if (it.isDir) {
74+ setParent(it)
8875 }
89- if (treeNode.isDir) {
90- treeNode.children?.forEach {
91- val node = deserializeTreeNode(it)
92- node.parent = fileTreeNode
93- fileTreeNode.children.add(node)
94- }
95- }
96- return fileTreeNode
97- }
98-
99- private fun serializeTreeNode (treeNode : FileTreeNode ): SerialTreeNode {
100- val serialTreeNode = SerialTreeNode (
101- treeNode.getRealName(),
102- treeNode.isDir,
103- null ,
104- treeNode.template,
105- treeNode.placeHolderMap,
106- treeNode.fileTemplates
107- )
108- if (treeNode.isDir && treeNode.children.isNotEmpty()) {
109- serialTreeNode.children = mutableListOf ()
110- treeNode.children.forEach {
111- serialTreeNode.children?.add(serializeTreeNode(it))
112- }
113- }
114- return serialTreeNode
11576 }
116-
117- private class SerialModule (
118- var template : SerialTreeNode ,
119- var name : String ,
120- var packageName : String ,
121- var language : String ,
122- var templateName : String
123- )
124-
125- private class SerialTreeNode (
126- var name : String ,
127- var isDir : Boolean ,
128- var children : MutableList <SerialTreeNode >? ,
129- var template : String? ,
130- var placeholders : MutableMap <String , String >? ,
131- var fileTemplate : MutableMap <String , String >?
132- )
13377 }
13478}
0 commit comments