Commit 3eed99ce authored by jiahua.liu's avatar jiahua.liu

plugin supporting

parent 9975b879
...@@ -27,21 +27,19 @@ abstract class PluginBase{ ...@@ -27,21 +27,19 @@ abstract class PluginBase{
} }
class PluginDescription( class PluginDescription(
val pluginName:String, val pluginName: String,
val pluginAuthor:String, val pluginAuthor: String,
val pluginBasePath: String, val pluginBasePath: String,
val pluginVersion: String, val pluginVersion: String,
val pluginInfo:String, val pluginInfo: String,
val depends: List<String>,//插件的依赖 val depends: List<String>,//插件的依赖
//internal //internal
var loaded:Boolean = false, var loaded: Boolean = false,
var noCircularDepend :Boolean = true var noCircularDepend: Boolean = true
) ) {
{ companion object {
fun readFromContent(content_: String): PluginDescription {
companion object{
fun readFromContent(content_:String):PluginDescription{
val content = content_.split("\n") val content = content_.split("\n")
var name = "Plugin" var name = "Plugin"
...@@ -125,21 +123,22 @@ object PluginManager{ ...@@ -125,21 +123,22 @@ object PluginManager{
} }
} }
fun checkNoCircularDepends (target:PluginDescription, needDepends: List<String>,existDepends: MutableList<String>){ fun checkNoCircularDepends (target:PluginDescription, needDepends: List<String>,existDepends: MutableList<String>) {
if(!target.noCircularDepend){ if (!target.noCircularDepend) {
return return
} }
if(needDepends.any { existDepends.contains(it) }){ existDepends.add(target.pluginName)
if (needDepends.any { existDepends.contains(it) }) {
target.noCircularDepend = false target.noCircularDepend = false
} }
existDepends.addAll(needDepends) existDepends.addAll(needDepends)
existDepends.add(target.pluginName)
needDepends.forEach{ needDepends.forEach {
if(pluginsFound.containsKey(it)){ if (pluginsFound.containsKey(it)) {
checkNoCircularDepends(pluginsFound[it]!!, pluginsFound[it]!!.depends, existDepends) checkNoCircularDepends(pluginsFound[it]!!, pluginsFound[it]!!.depends, existDepends)
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment