Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: remove usages of KitUtils.safe #785

Merged
merged 1 commit into from
Jun 12, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion common-api/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ dependencies {

implementation "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"

implementation('com.itangcent:commons:1.2.5') {
implementation('com.itangcent:commons:1.2.6') {
exclude group: 'com.google.inject'
exclude group: 'com.google.code.gson'
}
Expand Down
34 changes: 0 additions & 34 deletions common-api/src/main/kotlin/com/itangcent/common/kit/KitUtils.kt
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ package com.itangcent.common.kit
import com.itangcent.common.spi.SpiUtils
import com.itangcent.utils.DefaultJsonSupport
import com.itangcent.utils.JsonSupport
import kotlin.reflect.KClass

object KitUtils {

Expand All @@ -13,39 +12,6 @@ object KitUtils {
false -> whenFalse
}
}

fun <T> safe(action: () -> T): T? {
return try {
action()
} catch (e: Exception) {
null
}
}

fun <T> safe(ignoreThrowable: KClass<*>, action: () -> T): T? {
return try {
action()
} catch (e: Exception) {
if (ignoreThrowable.isInstance(e)) {
null
} else {
throw e
}
}
}

fun <T> safe(vararg ignoreThrowable: KClass<*>, action: () -> T): T? {
return try {
action()
} catch (e: Exception) {
for (throwable in ignoreThrowable) {
if (throwable.isInstance(e)) {
return null
}
}
throw e
}
}
}

fun <T> Boolean?.or(whenTrue: T, whenFalse: T): T {
Expand Down
4 changes: 2 additions & 2 deletions common-api/src/main/kotlin/com/itangcent/http/HttpRequest.kt
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package com.itangcent.http

import com.itangcent.annotation.script.ScriptTypeName
import com.itangcent.common.kit.KitUtils
import com.itangcent.common.kit.equalIgnoreCase
import com.itangcent.common.utils.safe
import org.apache.http.Consts
import org.apache.http.entity.ContentType
import java.io.ByteArrayInputStream
Expand Down Expand Up @@ -1084,7 +1084,7 @@ abstract class AbstractHttpResponse : HttpResponse {
* {@code null} if there is none
*/
override fun string(): String? {
val charset: Charset? = KitUtils.safe { ContentType.parse(this.contentType())?.charset }
val charset: Charset? = safe { ContentType.parse(this.contentType())?.charset }
?: Consts.UTF_8
return this.string(charset!!)
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.itangcent.common.kit

import com.itangcent.common.utils.KV
import com.itangcent.common.utils.safe
import org.junit.jupiter.api.Assertions.*
import org.junit.jupiter.api.Test
import org.junit.jupiter.api.assertDoesNotThrow
Expand All @@ -16,27 +17,6 @@ class KitUtilsTest {
assertEquals("false", KitUtils.fromBool(false, "true", "false"))
}

@Test
fun testSafe() {
assertDoesNotThrow { KitUtils.safe { throw RuntimeException() } }
assertDoesNotThrow { KitUtils.safe(RuntimeException::class) { throw RuntimeException() } }
assertThrows(RuntimeException::class.java) { KitUtils.safe(IllegalArgumentException::class) { throw RuntimeException() } }
assertDoesNotThrow { KitUtils.safe(RuntimeException::class) { throw IllegalArgumentException() } }
assertDoesNotThrow {
KitUtils.safe(
RuntimeException::class,
IllegalArgumentException::class
) { throw IllegalArgumentException() }
}
assertThrows(RuntimeException::class.java) {
KitUtils.safe(
IllegalStateException::class,
IllegalArgumentException::class
) { throw RuntimeException() }
}

}

@Test
fun testToJson() {
assertEquals(null, null.toJson())
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package com.itangcent.common.model

import com.itangcent.common.constant.HttpMethod
import com.itangcent.common.kit.KitUtils
import com.itangcent.common.utils.Extensible
import org.junit.jupiter.api.assertDoesNotThrow
import org.junit.jupiter.api.extension.ExtendWith
Expand All @@ -16,11 +15,9 @@ import kotlin.test.*
class ModelsTest {

@ParameterizedTest
@ValueSource(classes = [Doc::class, FormParam::class,
Header::class, MethodDoc::class,
Param::class, PathParam::class,
Request::class, Response::class
])
@ValueSource(
classes = [Doc::class, FormParam::class, Header::class, MethodDoc::class, Param::class, PathParam::class, Request::class, Response::class]
)
fun testExtensible(cls: Class<Extensible>) {
val extensible = cls.newInstance() as Extensible//{}
assertFalse(extensible.hasExt("a"))
Expand Down
8 changes: 4 additions & 4 deletions idea-plugin/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -78,17 +78,17 @@ dependencies {
// implementation fileTree(dir: 'libs', include: ['*.jar'])


implementation('com.itangcent:intellij-idea:1.2.5') {
implementation('com.itangcent:intellij-idea:1.2.6') {
exclude group: 'com.google.inject'
exclude group: 'com.google.code.gson'
}

implementation('com.itangcent:intellij-kotlin-support:1.2.5') {
implementation('com.itangcent:intellij-kotlin-support:1.2.6') {
exclude group: 'com.google.inject'
exclude group: 'com.google.code.gson'
}

// implementation('com.itangcent:intellij-scala-support:1.2.5') {
// implementation('com.itangcent:intellij-scala-support:1.2.6') {
// exclude group: 'com.google.inject'
// exclude group: 'com.google.code.gson'
// }
Expand Down Expand Up @@ -122,7 +122,7 @@ dependencies {
// https://mvnrepository.com/artifact/org.mockito/mockito-inline
testImplementation group: 'org.mockito', name: 'mockito-inline', version: '3.11.0'

testImplementation('com.itangcent:intellij-idea-test:1.2.5') {
testImplementation('com.itangcent:intellij-idea-test:1.2.6') {
exclude group: 'com.nhaarman.mockitokotlin2', module: 'mockito-kotlin'
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ package com.itangcent.idea.icons

import com.intellij.openapi.util.IconLoader
import com.intellij.util.ReflectionUtil
import com.itangcent.common.kit.KitUtils
import com.itangcent.common.utils.invokeMethod
import com.itangcent.common.utils.safe
import org.jetbrains.annotations.NonNls
import java.awt.Component
import java.net.URL
Expand Down Expand Up @@ -97,14 +97,14 @@ fun Icon?.iconOnly(component: Component?) {
if (this == null || component == null) {
return
}
KitUtils.safe { component.invokeMethod("setIcon", this) }
KitUtils.safe { component.invokeMethod("setText", "") }
safe { component.invokeMethod("setIcon", this) }
safe { component.invokeMethod("setText", "") }
}

fun Icon?.iconOnly(component: AbstractButton?) {
if (this == null || component == null) {
return
}
KitUtils.safe { component.icon = this }
KitUtils.safe { component.text = "" }
safe { component.icon = this }
safe { component.text = "" }
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,9 @@ import com.itangcent.common.constant.Attrs
import com.itangcent.common.constant.HttpMethod
import com.itangcent.common.exception.ProcessCanceledException
import com.itangcent.common.kit.KVUtils
import com.itangcent.common.kit.KitUtils
import com.itangcent.common.logger.traceError
import com.itangcent.common.model.Request
import com.itangcent.common.model.Response
import com.itangcent.common.model.getContentType
import com.itangcent.common.model.hasBodyOrForm
import com.itangcent.common.utils.*
import com.itangcent.http.RequestUtils
Expand Down Expand Up @@ -238,7 +236,7 @@ abstract class RequestClassExporter : ClassExporter {
val additionalHeaders = additionalHeader!!.lines()
for (headerStr in additionalHeaders) {
cacheAble!!.cache("header" to headerStr) {
val header = KitUtils.safe { additionalParseHelper.parseHeaderFromJson(headerStr) }
val header = safe { additionalParseHelper.parseHeaderFromJson(headerStr) }
when {
header == null -> {
logger.error("error to parse additional header: $headerStr")
Expand All @@ -263,7 +261,7 @@ abstract class RequestClassExporter : ClassExporter {
val additionalParams = additionalParam!!.lines()
for (paramStr in additionalParams) {
cacheAble!!.cache("param" to paramStr) {
val param = KitUtils.safe { additionalParseHelper.parseParamFromJson(paramStr) }
val param = safe { additionalParseHelper.parseParamFromJson(paramStr) }
when {
param == null -> {
logger.error("error to parse additional param: $paramStr")
Expand Down Expand Up @@ -292,7 +290,7 @@ abstract class RequestClassExporter : ClassExporter {
val additionalHeaders = additionalResponseHeader!!.lines()
for (headerStr in additionalHeaders) {
cacheAble!!.cache("header" to headerStr) {
val header = KitUtils.safe { additionalParseHelper.parseHeaderFromJson(headerStr) }
val header = safe { additionalParseHelper.parseHeaderFromJson(headerStr) }
when {
header == null -> {
logger.error("error to parse additional response header: $headerStr")
Expand Down Expand Up @@ -605,8 +603,10 @@ abstract class RequestClassExporter : ClassExporter {
parameterExportContext,
request,
path,
tinyQueryParam(parent?.getAs<Boolean>(Attrs.DEFAULT_VALUE_ATTR, key)
?: value),
tinyQueryParam(
parent?.getAs<Boolean>(Attrs.DEFAULT_VALUE_ATTR, key)
?: value
),
parent?.getAs<Boolean>(Attrs.REQUIRED_ATTR, key) ?: false,
KVUtils.getUltimateComment(parent?.getAs(Attrs.COMMENT_ATTR), key)
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ package com.itangcent.idea.plugin.api.export.curl

import com.google.inject.Inject
import com.google.inject.Singleton
import com.itangcent.common.kit.KitUtils
import com.itangcent.common.logger.traceError
import com.itangcent.common.model.Request
import com.itangcent.common.utils.safe
import com.itangcent.idea.plugin.settings.helper.MarkdownSettingsHelper
import com.itangcent.idea.swing.MessagesHelper
import com.itangcent.idea.utils.FileSaveHelper
Expand Down Expand Up @@ -66,7 +66,7 @@ class CurlExporter {

fun export(request: Request) {
val curlCommand = curlFormatter.parseRequest(request)
KitUtils.safe { ToolUtils.copy2Clipboard(curlCommand) }
safe { ToolUtils.copy2Clipboard(curlCommand) }
messagesHelper.showInfoDialog(curlCommand, "Curl")
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@ import com.intellij.psi.PsiElement
import com.intellij.psi.PsiMethod
import com.intellij.psi.PsiParameter
import com.itangcent.common.constant.HttpMethod
import com.itangcent.common.kit.KitUtils
import com.itangcent.common.model.Request
import com.itangcent.common.model.URL
import com.itangcent.common.utils.notNullOrBlank
import com.itangcent.common.utils.safe
import com.itangcent.idea.plugin.api.export.Orders
import com.itangcent.idea.plugin.api.export.condition.ConditionOnSimple
import com.itangcent.idea.plugin.api.export.core.*
Expand Down Expand Up @@ -103,7 +103,7 @@ open class GenericRequestClassExporter : RequestClassExporter() {
val headerStr = findRequestHeader(parameterExportContext.psi())
if (headerStr != null) {
cacheAble!!.cache("header" to headerStr) {
val header = KitUtils.safe { additionalParseHelper.parseHeaderFromJson(headerStr) }
val header = safe { additionalParseHelper.parseHeaderFromJson(headerStr) }
when {
header == null -> {
logger.error("error to parse additional header: $headerStr")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,10 @@ import com.intellij.openapi.module.ModuleManager
import com.intellij.openapi.project.Project
import com.intellij.openapi.project.rootManager
import com.intellij.psi.*
import com.itangcent.common.concurrent.AQSCountLatch
import com.itangcent.common.concurrent.CountLatch
import com.itangcent.common.kit.KitUtils
import com.itangcent.common.model.Doc
import com.itangcent.common.model.MethodDoc
import com.itangcent.common.model.Request
import com.itangcent.common.utils.safe
import com.itangcent.common.utils.safeComputeIfAbsent
import com.itangcent.idea.icons.EasyIcons
import com.itangcent.idea.plugin.api.cache.CachedRequestClassExporter
Expand All @@ -26,11 +24,9 @@ import com.itangcent.idea.psi.resourceMethod
import com.itangcent.idea.swing.*
import com.itangcent.idea.utils.SwingUtils
import com.itangcent.idea.utils.reload
import com.itangcent.intellij.context.ActionContext
import com.itangcent.intellij.extend.runWithContext
import com.itangcent.intellij.extend.rx.AutoComputer
import com.itangcent.intellij.extend.withBoundary
import com.itangcent.intellij.logger.Logger
import com.itangcent.intellij.psi.PsiClassUtils
import com.itangcent.intellij.util.FileType
import java.awt.Cursor
Expand All @@ -43,7 +39,6 @@ import java.awt.event.MouseEvent
import java.io.Serializable
import java.util.*
import java.util.concurrent.ConcurrentHashMap
import java.util.concurrent.Future
import java.util.concurrent.Semaphore
import java.util.concurrent.TimeUnit
import javax.swing.*
Expand Down Expand Up @@ -289,9 +284,9 @@ abstract class AbstractApiDashboardDialog : ContextDialog() {
LOG.info("no api be found from module [${moduleData.module.name}]")
moduleNode.removeFromParent()
}
KitUtils.safe { completedHandle() }
safe { completedHandle() }
actionContext.runInSwingUI {
KitUtils.safe(
safe(
ArrayIndexOutOfBoundsException::class,
NullPointerException::class
) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,11 @@ import com.intellij.ui.table.JBTable
import com.intellij.util.ui.ComboBoxCellEditor
import com.itangcent.cache.HttpContextCacheHelper
import com.itangcent.common.constant.HttpMethod
import com.itangcent.common.kit.KitUtils
import com.itangcent.common.logger.traceError
import com.itangcent.common.model.FormParam
import com.itangcent.common.model.Request
import com.itangcent.common.model.hasBodyOrForm
import com.itangcent.common.utils.appendlnIfNotEmpty
import com.itangcent.common.utils.firstOrNull
import com.itangcent.common.utils.notNullOrBlank
import com.itangcent.common.utils.notNullOrEmpty
import com.itangcent.common.utils.*
import com.itangcent.http.*
import com.itangcent.idea.binder.DbBeanBinderFactory
import com.itangcent.idea.icons.EasyIcons
Expand Down Expand Up @@ -1141,7 +1137,7 @@ class ApiCallDialog : ContextDialog(), ApiCallUI {

private fun formatResponse(): String? {
return try {
val contentType = KitUtils.safe { response.contentType()?.let { ContentType.parse(it) } }
val contentType = safe { response.contentType()?.let { ContentType.parse(it) } }
if (contentType != null) {
if (contentType.mimeType.startsWith("text/html") ||
contentType.mimeType.startsWith("text/xml")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package com.itangcent.idea.plugin.dialog

import com.google.inject.Inject
import com.itangcent.common.kit.KitUtils
import com.itangcent.common.logger.traceError
import com.itangcent.common.utils.safe
import com.itangcent.idea.utils.initAfterShown
import com.itangcent.intellij.constant.EventKey
import com.itangcent.intellij.context.ActionContext
Expand Down Expand Up @@ -87,7 +87,7 @@ abstract class ContextDialog : JDialog() {
if (!disposed) {
disposed = true
dispose()
KitUtils.safe { onDispose() }
safe { onDispose() }
}
}

Expand Down