Skip to content
This repository has been archived by the owner on May 25, 2022. It is now read-only.

Commit

Permalink
fix: add check for same class already in system
Browse files Browse the repository at this point in the history
  • Loading branch information
phodal committed Mar 20, 2022
1 parent 5f6f908 commit 8fd5759
Showing 1 changed file with 25 additions and 14 deletions.
Expand Up @@ -136,22 +136,33 @@ class ClassRepository(systemId: String) {
}

private fun saveOrGetDependentClass(name: String, moduleName: String = DEFAULT_MODULE_NAME): String? {
val idOpt = findClass(name, moduleName, null)
// own module
var idOpt = findClass(name, moduleName, null)
if (idOpt.isPresent) {
return idOpt.get()
}

//other-module
// todo, after add module support for Chapi

//third-party
idOpt = findClass(name, null, null)
if (idOpt.isPresent) {
return idOpt.get()
}

val index: Int = name.lastIndexOf(".")
val packageName: String? = if (index < 0) null else name.substring(0, index)
val className: String = if (index < 0) name else name.substring(index + 1)
val clzDependenceId = idOpt!!.orElseGet {
doSaveClass(
name,
moduleName,
"",
thirdparty = true,
isTest = false,
packageName = packageName,
className = className
)
}
return clzDependenceId
return doSaveClass(
name,
moduleName,
"",
thirdparty = true,
isTest = false,
packageName = packageName,
className = className
)
}

private fun doSaveClassDependence(clzId: String, clzDependenceId: String?, sourceName: String, name: String) {
Expand Down Expand Up @@ -187,7 +198,7 @@ class ClassRepository(systemId: String) {
return clzId
}

private fun findClass(name: String, module: String?, access: String?): Optional<String?>? {
private fun findClass(name: String, module: String?, access: String?): Optional<String?> {
val keys: MutableMap<String, String> = HashMap()
keys["name"] = name
if (module != null) {
Expand Down

0 comments on commit 8fd5759

Please sign in to comment.