From 6704b06dfac475a3fa55ee6cdb45b6100e91473c Mon Sep 17 00:00:00 2001 From: fankesyooni Date: Wed, 27 Sep 2023 18:01:55 +0800 Subject: [PATCH] refactor: use magic to hide lint on non-public, inline api - remove all YukiPrivateApi and @PublishedApi --- .../yukireflection/bean/CurrentClass.md | 4 +- .../finder/classes/rules/ConstructorRules.md | 2 +- .../finder/classes/rules/FieldRules.md | 2 +- .../finder/classes/rules/MemberRules.md | 2 +- .../finder/classes/rules/MethodRules.md | 2 +- .../finder/members/FieldFinder.md | 2 +- .../finder/members/MethodFinder.md | 2 +- .../yukireflection/bean/CurrentClass.md | 4 +- .../finder/classes/rules/ConstructorRules.md | 2 +- .../finder/classes/rules/FieldRules.md | 2 +- .../finder/classes/rules/MemberRules.md | 2 +- .../finder/classes/rules/MethodRules.md | 2 +- .../finder/members/FieldFinder.md | 2 +- .../finder/members/MethodFinder.md | 2 +- gradle.properties | 1 - yukireflection-core/build.gradle.kts | 11 ---- .../annotation/CauseProblemsApi.kt | 56 ------------------- .../annotation/YukiPrivateApi.kt | 54 ------------------ .../yukireflection/bean/CurrentClass.kt | 18 +++--- .../yukireflection/bean/GenericClass.kt | 4 +- .../factory/ReflectionFactory.kt | 4 +- .../yukireflection/finder/base/BaseFinder.kt | 14 ++--- .../finder/base/ClassBaseFinder.kt | 2 - .../finder/base/MemberBaseFinder.kt | 6 +- .../finder/base/data/BaseRulesData.kt | 1 - .../finder/base/rules/CountRules.kt | 2 - .../finder/base/rules/ModifierRules.kt | 2 - .../finder/base/rules/NameRules.kt | 2 - .../finder/base/rules/ObjectRules.kt | 2 - .../finder/classes/DexClassFinder.kt | 11 ++-- .../finder/classes/data/ClassRulesData.kt | 1 - .../finder/classes/rules/ConstructorRules.kt | 3 +- .../finder/classes/rules/FieldRules.kt | 3 +- .../finder/classes/rules/MemberRules.kt | 3 +- .../finder/classes/rules/MethodRules.kt | 3 +- .../finder/classes/rules/base/BaseRules.kt | 5 -- .../finder/members/ConstructorFinder.kt | 21 +++---- .../finder/members/FieldFinder.kt | 25 +++------ .../finder/members/MethodFinder.kt | 21 +++---- .../members/data/ConstructorRulesData.kt | 1 - .../finder/members/data/FieldRulesData.kt | 1 - .../finder/members/data/MemberRulesData.kt | 1 - .../finder/members/data/MethodRulesData.kt | 1 - .../finder/tools/ReflectionTool.kt | 2 - 44 files changed, 63 insertions(+), 250 deletions(-) delete mode 100644 yukireflection-core/src/main/java/com/highcapable/yukireflection/annotation/CauseProblemsApi.kt delete mode 100644 yukireflection-core/src/main/java/com/highcapable/yukireflection/annotation/YukiPrivateApi.kt diff --git a/docs-source/src/en/api/public/com/highcapable/yukireflection/bean/CurrentClass.md b/docs-source/src/en/api/public/com/highcapable/yukireflection/bean/CurrentClass.md index 2ab4dd1..29072ed 100644 --- a/docs-source/src/en/api/public/com/highcapable/yukireflection/bean/CurrentClass.md +++ b/docs-source/src/en/api/public/com/highcapable/yukireflection/bean/CurrentClass.md @@ -13,7 +13,7 @@ You can use the **Chrome Translation Plugin** to translate entire pages for refe # CurrentClass - class ```kotlin:no-line-numbers -class CurrentClass internal constructor(internal val classSet: Class<*>, internal val instance: Any) +class CurrentClass internal constructor(private val classSet: Class<*>, internal val instance: Any) ``` **Change Records** @@ -129,7 +129,7 @@ inline fun method(initiate: MethodConditions): MethodFinder.Result.Instance ## SuperClass - class ```kotlin:no-line-numbers -inner class SuperClass internal constructor(internal val superClassSet: Class<*>) +inner class SuperClass internal constructor(private val superClassSet: Class<*>) ``` **Change Records** diff --git a/docs-source/src/en/api/public/com/highcapable/yukireflection/finder/classes/rules/ConstructorRules.md b/docs-source/src/en/api/public/com/highcapable/yukireflection/finder/classes/rules/ConstructorRules.md index 3f5ce70..f8be208 100644 --- a/docs-source/src/en/api/public/com/highcapable/yukireflection/finder/classes/rules/ConstructorRules.md +++ b/docs-source/src/en/api/public/com/highcapable/yukireflection/finder/classes/rules/ConstructorRules.md @@ -13,7 +13,7 @@ You can use the **Chrome Translation Plugin** to translate entire pages for refe # ConstructorRules - class ```kotlin:no-line-numbers -class ConstructorRules internal constructor(internal val rulesData: ConstructorRulesData) : BaseRules +class ConstructorRules internal constructor(private val rulesData: ConstructorRulesData) : BaseRules ``` **Change Records** diff --git a/docs-source/src/en/api/public/com/highcapable/yukireflection/finder/classes/rules/FieldRules.md b/docs-source/src/en/api/public/com/highcapable/yukireflection/finder/classes/rules/FieldRules.md index 2024faf..04f94be 100644 --- a/docs-source/src/en/api/public/com/highcapable/yukireflection/finder/classes/rules/FieldRules.md +++ b/docs-source/src/en/api/public/com/highcapable/yukireflection/finder/classes/rules/FieldRules.md @@ -13,7 +13,7 @@ You can use the **Chrome Translation Plugin** to translate entire pages for refe # FieldRules - class ```kotlin:no-line-numbers -class FieldRules internal constructor(internal val rulesData: FieldRulesData) : BaseRules +class FieldRules internal constructor(private val rulesData: FieldRulesData) : BaseRules ``` **Change Records** diff --git a/docs-source/src/en/api/public/com/highcapable/yukireflection/finder/classes/rules/MemberRules.md b/docs-source/src/en/api/public/com/highcapable/yukireflection/finder/classes/rules/MemberRules.md index 3896536..ea30d0d 100644 --- a/docs-source/src/en/api/public/com/highcapable/yukireflection/finder/classes/rules/MemberRules.md +++ b/docs-source/src/en/api/public/com/highcapable/yukireflection/finder/classes/rules/MemberRules.md @@ -13,7 +13,7 @@ You can use the **Chrome Translation Plugin** to translate entire pages for refe # MemberRules - class ```kotlin:no-line-numbers -class MemberRules internal constructor(internal val rulesData: MemberRulesData) : BaseRules +class MemberRules internal constructor(private val rulesData: MemberRulesData) : BaseRules ``` **Change Records** diff --git a/docs-source/src/en/api/public/com/highcapable/yukireflection/finder/classes/rules/MethodRules.md b/docs-source/src/en/api/public/com/highcapable/yukireflection/finder/classes/rules/MethodRules.md index 9d6a05f..d0cff56 100644 --- a/docs-source/src/en/api/public/com/highcapable/yukireflection/finder/classes/rules/MethodRules.md +++ b/docs-source/src/en/api/public/com/highcapable/yukireflection/finder/classes/rules/MethodRules.md @@ -13,7 +13,7 @@ You can use the **Chrome Translation Plugin** to translate entire pages for refe # MethodRules - class ```kotlin:no-line-numbers -class MethodRules internal constructor(internal val rulesData: MethodRulesData) : BaseRules +class MethodRules internal constructor(private val rulesData: MethodRulesData) : BaseRules ``` **Change Records** diff --git a/docs-source/src/en/api/public/com/highcapable/yukireflection/finder/members/FieldFinder.md b/docs-source/src/en/api/public/com/highcapable/yukireflection/finder/members/FieldFinder.md index 230c009..4a2eb0b 100644 --- a/docs-source/src/en/api/public/com/highcapable/yukireflection/finder/members/FieldFinder.md +++ b/docs-source/src/en/api/public/com/highcapable/yukireflection/finder/members/FieldFinder.md @@ -281,7 +281,7 @@ field { ## Result - class ```kotlin:no-line-numbers -inner class Result internal constructor(internal val isNoSuch: Boolean, private val throwable: Throwable?) : BaseResult +inner class Result internal constructor(internal val isNoSuch: Boolean, internal val throwable: Throwable?) : BaseResult ``` **Change Records** diff --git a/docs-source/src/en/api/public/com/highcapable/yukireflection/finder/members/MethodFinder.md b/docs-source/src/en/api/public/com/highcapable/yukireflection/finder/members/MethodFinder.md index bde5507..55d9064 100644 --- a/docs-source/src/en/api/public/com/highcapable/yukireflection/finder/members/MethodFinder.md +++ b/docs-source/src/en/api/public/com/highcapable/yukireflection/finder/members/MethodFinder.md @@ -431,7 +431,7 @@ method { ## Result - class ```kotlin:no-line-numbers -inner class Result internal constructor(internal val isNoSuch: Boolean, private val throwable: Throwable?) : BaseResult +inner class Result internal constructor(internal val isNoSuch: Boolean, internal val throwable: Throwable?) : BaseResult ``` **Change Records** diff --git a/docs-source/src/zh-cn/api/public/com/highcapable/yukireflection/bean/CurrentClass.md b/docs-source/src/zh-cn/api/public/com/highcapable/yukireflection/bean/CurrentClass.md index 4cdcb1a..9cb40ff 100644 --- a/docs-source/src/zh-cn/api/public/com/highcapable/yukireflection/bean/CurrentClass.md +++ b/docs-source/src/zh-cn/api/public/com/highcapable/yukireflection/bean/CurrentClass.md @@ -5,7 +5,7 @@ pageClass: code-page # CurrentClass - class ```kotlin:no-line-numbers -class CurrentClass internal constructor(internal val classSet: Class<*>, internal val instance: Any) +class CurrentClass internal constructor(private val classSet: Class<*>, internal val instance: Any) ``` **变更记录** @@ -121,7 +121,7 @@ inline fun method(initiate: MethodConditions): MethodFinder.Result.Instance ## SuperClass - class ```kotlin:no-line-numbers -inner class SuperClass internal constructor(internal val superClassSet: Class<*>) +inner class SuperClass internal constructor(private val superClassSet: Class<*>) ``` **变更记录** diff --git a/docs-source/src/zh-cn/api/public/com/highcapable/yukireflection/finder/classes/rules/ConstructorRules.md b/docs-source/src/zh-cn/api/public/com/highcapable/yukireflection/finder/classes/rules/ConstructorRules.md index 2df5bae..261434d 100644 --- a/docs-source/src/zh-cn/api/public/com/highcapable/yukireflection/finder/classes/rules/ConstructorRules.md +++ b/docs-source/src/zh-cn/api/public/com/highcapable/yukireflection/finder/classes/rules/ConstructorRules.md @@ -5,7 +5,7 @@ pageClass: code-page # ConstructorRules - class ```kotlin:no-line-numbers -class ConstructorRules internal constructor(internal val rulesData: ConstructorRulesData) : BaseRules +class ConstructorRules internal constructor(private val rulesData: ConstructorRulesData) : BaseRules ``` **变更记录** diff --git a/docs-source/src/zh-cn/api/public/com/highcapable/yukireflection/finder/classes/rules/FieldRules.md b/docs-source/src/zh-cn/api/public/com/highcapable/yukireflection/finder/classes/rules/FieldRules.md index 8442a44..c958ce6 100644 --- a/docs-source/src/zh-cn/api/public/com/highcapable/yukireflection/finder/classes/rules/FieldRules.md +++ b/docs-source/src/zh-cn/api/public/com/highcapable/yukireflection/finder/classes/rules/FieldRules.md @@ -5,7 +5,7 @@ pageClass: code-page # FieldRules - class ```kotlin:no-line-numbers -class FieldRules internal constructor(internal val rulesData: FieldRulesData) : BaseRules +class FieldRules internal constructor(private val rulesData: FieldRulesData) : BaseRules ``` **变更记录** diff --git a/docs-source/src/zh-cn/api/public/com/highcapable/yukireflection/finder/classes/rules/MemberRules.md b/docs-source/src/zh-cn/api/public/com/highcapable/yukireflection/finder/classes/rules/MemberRules.md index 28f2330..2d80a3c 100644 --- a/docs-source/src/zh-cn/api/public/com/highcapable/yukireflection/finder/classes/rules/MemberRules.md +++ b/docs-source/src/zh-cn/api/public/com/highcapable/yukireflection/finder/classes/rules/MemberRules.md @@ -5,7 +5,7 @@ pageClass: code-page # MemberRules - class ```kotlin:no-line-numbers -class MemberRules internal constructor(internal val rulesData: MemberRulesData) : BaseRules +class MemberRules internal constructor(private val rulesData: MemberRulesData) : BaseRules ``` **变更记录** diff --git a/docs-source/src/zh-cn/api/public/com/highcapable/yukireflection/finder/classes/rules/MethodRules.md b/docs-source/src/zh-cn/api/public/com/highcapable/yukireflection/finder/classes/rules/MethodRules.md index fd51a1f..d921122 100644 --- a/docs-source/src/zh-cn/api/public/com/highcapable/yukireflection/finder/classes/rules/MethodRules.md +++ b/docs-source/src/zh-cn/api/public/com/highcapable/yukireflection/finder/classes/rules/MethodRules.md @@ -5,7 +5,7 @@ pageClass: code-page # MethodRules - class ```kotlin:no-line-numbers -class MethodRules internal constructor(internal val rulesData: MethodRulesData) : BaseRules +class MethodRules internal constructor(private val rulesData: MethodRulesData) : BaseRules ``` **变更记录** diff --git a/docs-source/src/zh-cn/api/public/com/highcapable/yukireflection/finder/members/FieldFinder.md b/docs-source/src/zh-cn/api/public/com/highcapable/yukireflection/finder/members/FieldFinder.md index f76dc5f..3075521 100644 --- a/docs-source/src/zh-cn/api/public/com/highcapable/yukireflection/finder/members/FieldFinder.md +++ b/docs-source/src/zh-cn/api/public/com/highcapable/yukireflection/finder/members/FieldFinder.md @@ -273,7 +273,7 @@ field { ## Result - class ```kotlin:no-line-numbers -inner class Result internal constructor(internal val isNoSuch: Boolean, private val throwable: Throwable?) : BaseResult +inner class Result internal constructor(internal val isNoSuch: Boolean, internal val throwable: Throwable?) : BaseResult ``` **变更记录** diff --git a/docs-source/src/zh-cn/api/public/com/highcapable/yukireflection/finder/members/MethodFinder.md b/docs-source/src/zh-cn/api/public/com/highcapable/yukireflection/finder/members/MethodFinder.md index 3696f32..6f93875 100644 --- a/docs-source/src/zh-cn/api/public/com/highcapable/yukireflection/finder/members/MethodFinder.md +++ b/docs-source/src/zh-cn/api/public/com/highcapable/yukireflection/finder/members/MethodFinder.md @@ -423,7 +423,7 @@ method { ## Result - class ```kotlin:no-line-numbers -inner class Result internal constructor(internal val isNoSuch: Boolean, private val throwable: Throwable?) : BaseResult +inner class Result internal constructor(internal val isNoSuch: Boolean, internal val throwable: Throwable?) : BaseResult ``` **变更记录** diff --git a/gradle.properties b/gradle.properties index dc1bf19..33ce808 100644 --- a/gradle.properties +++ b/gradle.properties @@ -11,7 +11,6 @@ project.url=https://github.com/fankes/YukiReflection project.groupName=com.highcapable.yukireflection project.yukireflection-core.moduleName=api project.yukireflection-core.version="1.0.2" -project.yukireflection-core.kotlin-optIn.YukiPrivateApi=${project.groupName}.annotation.YukiPrivateApi project.licence.name=MIT project.licence.url=https://github.com/fankes/YukiReflection/blob/master/LICENSE project.developer.id="0" diff --git a/yukireflection-core/build.gradle.kts b/yukireflection-core/build.gradle.kts index 56d22ad..aaaf0a0 100644 --- a/yukireflection-core/build.gradle.kts +++ b/yukireflection-core/build.gradle.kts @@ -10,21 +10,10 @@ java { targetCompatibility = JavaVersion.VERSION_17 } -kotlin { - sourceSets { - all { - languageSettings { - optIn(property.project.yukireflection.core.kotlin.optIn.yukiPrivateApi) - } - } - } -} - tasks.withType().configureEach { kotlinOptions { jvmTarget = "17" freeCompilerArgs = listOf( - "-opt-in=${property.project.yukireflection.core.kotlin.optIn.yukiPrivateApi}", "-Xno-param-assertions", "-Xno-call-assertions", "-Xno-receiver-assertions" diff --git a/yukireflection-core/src/main/java/com/highcapable/yukireflection/annotation/CauseProblemsApi.kt b/yukireflection-core/src/main/java/com/highcapable/yukireflection/annotation/CauseProblemsApi.kt deleted file mode 100644 index 2ac0859..0000000 --- a/yukireflection-core/src/main/java/com/highcapable/yukireflection/annotation/CauseProblemsApi.kt +++ /dev/null @@ -1,56 +0,0 @@ -/* - * YukiReflection - An efficient Reflection API for Java and Android built in Kotlin. - * Copyright (C) 2019-2023 HighCapable - * https://github.com/fankes/YukiReflection - * - * MIT License - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - * - * This file is created by fankes on 2022/4/3. - * This file is modified by fankes on 2023/1/21. - */ -@file:Suppress("unused") - -package com.highcapable.yukireflection.annotation - -@RequiresOptIn(level = RequiresOptIn.Level.WARNING) -@MustBeDocumented -@Target( - AnnotationTarget.CLASS, - AnnotationTarget.CONSTRUCTOR, - AnnotationTarget.FUNCTION, - AnnotationTarget.ANNOTATION_CLASS, - AnnotationTarget.PROPERTY, - AnnotationTarget.FIELD, - AnnotationTarget.LOCAL_VARIABLE, - AnnotationTarget.VALUE_PARAMETER, - AnnotationTarget.PROPERTY_GETTER, - AnnotationTarget.PROPERTY_SETTER, - AnnotationTarget.TYPEALIAS -) -@Retention(AnnotationRetention.BINARY) -/** - * - ❗标记为不规范使用可能会引发问题的 API - * - * 此功能用于规范代码调用域 - 非调用域内的 API 将会在 IDE 中显示警告 - * - * 此功能除继承和接口外不应该在这里被调用 - */ -annotation class CauseProblemsApi \ No newline at end of file diff --git a/yukireflection-core/src/main/java/com/highcapable/yukireflection/annotation/YukiPrivateApi.kt b/yukireflection-core/src/main/java/com/highcapable/yukireflection/annotation/YukiPrivateApi.kt deleted file mode 100644 index 4567372..0000000 --- a/yukireflection-core/src/main/java/com/highcapable/yukireflection/annotation/YukiPrivateApi.kt +++ /dev/null @@ -1,54 +0,0 @@ -/* - * YukiReflection - An efficient Reflection API for Java and Android built in Kotlin. - * Copyright (C) 2019-2023 HighCapable - * https://github.com/fankes/YukiReflection - * - * MIT License - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - * - * This file is created by fankes on 2022/4/3. - * This file is modified by fankes on 2023/1/21. - */ -@file:Suppress("unused") - -package com.highcapable.yukireflection.annotation - -@RequiresOptIn(level = RequiresOptIn.Level.ERROR) -@MustBeDocumented -@Target( - AnnotationTarget.CLASS, - AnnotationTarget.CONSTRUCTOR, - AnnotationTarget.FUNCTION, - AnnotationTarget.ANNOTATION_CLASS, - AnnotationTarget.PROPERTY, - AnnotationTarget.FIELD, - AnnotationTarget.LOCAL_VARIABLE, - AnnotationTarget.VALUE_PARAMETER, - AnnotationTarget.PROPERTY_GETTER, - AnnotationTarget.PROPERTY_SETTER, - AnnotationTarget.TYPEALIAS -) -@Retention(AnnotationRetention.BINARY) -/** - * - ❗标记功能为私有功能性 API - * - * 此功能除继承和接口外不应该在这里被调用 - */ -internal annotation class YukiPrivateApi \ No newline at end of file diff --git a/yukireflection-core/src/main/java/com/highcapable/yukireflection/bean/CurrentClass.kt b/yukireflection-core/src/main/java/com/highcapable/yukireflection/bean/CurrentClass.kt index 08f484c..9119139 100644 --- a/yukireflection-core/src/main/java/com/highcapable/yukireflection/bean/CurrentClass.kt +++ b/yukireflection-core/src/main/java/com/highcapable/yukireflection/bean/CurrentClass.kt @@ -26,7 +26,7 @@ * This file is created by fankes on 2022/4/4. * This file is modified by fankes on 2023/1/21. */ -@file:Suppress("unused") +@file:Suppress("unused", "NON_PUBLIC_CALL_FROM_PUBLIC_INLINE") package com.highcapable.yukireflection.bean @@ -43,11 +43,10 @@ import com.highcapable.yukireflection.finder.type.factory.MethodConditions * @param classSet 当前实例的 [Class] * @param instance 当前实例本身 */ -class CurrentClass @PublishedApi internal constructor(@PublishedApi internal val classSet: Class<*>, @PublishedApi internal val instance: Any) { +class CurrentClass internal constructor(private val classSet: Class<*>, internal val instance: Any) { /** 是否开启忽略错误警告功能 */ - @PublishedApi - internal var isShutErrorPrinting = false + internal var isIgnoreErrorLogs = false /** * 获得当前 [classSet] 的 [Class.getName] @@ -89,14 +88,14 @@ class CurrentClass @PublishedApi internal constructor(@PublishedApi internal val * @param initiate 查找方法体 * @return [FieldFinder.Result.Instance] */ - inline fun field(initiate: FieldConditions) = classSet.field(initiate).result { if (isShutErrorPrinting) ignored() }.get(instance) + inline fun field(initiate: FieldConditions) = classSet.field(initiate).result { if (isIgnoreErrorLogs) ignored() }.get(instance) /** * 调用当前实例中的方法 * @param initiate 查找方法体 * @return [MethodFinder.Result.Instance] */ - inline fun method(initiate: MethodConditions) = classSet.method(initiate).result { if (isShutErrorPrinting) ignored() }.get(instance) + inline fun method(initiate: MethodConditions) = classSet.method(initiate).result { if (isIgnoreErrorLogs) ignored() }.get(instance) /** * 当前类的父类实例的类操作对象 @@ -104,7 +103,7 @@ class CurrentClass @PublishedApi internal constructor(@PublishedApi internal val * - ❗请使用 [superClass] 方法来获取 [SuperClass] * @param superClassSet 父类 [Class] 对象 */ - inner class SuperClass internal constructor(@PublishedApi internal val superClassSet: Class<*>) { + inner class SuperClass internal constructor(private val superClassSet: Class<*>) { /** * 获得当前 [classSet] 中父类的 [Class.getName] @@ -140,15 +139,14 @@ class CurrentClass @PublishedApi internal constructor(@PublishedApi internal val * @param initiate 查找方法体 * @return [FieldFinder.Result.Instance] */ - inline fun field(initiate: FieldConditions) = superClassSet.field(initiate).result { if (isShutErrorPrinting) ignored() }.get(instance) + inline fun field(initiate: FieldConditions) = superClassSet.field(initiate).result { if (isIgnoreErrorLogs) ignored() }.get(instance) /** * 调用父类实例中的方法 * @param initiate 查找方法体 * @return [MethodFinder.Result.Instance] */ - inline fun method(initiate: MethodConditions) = - superClassSet.method(initiate).result { if (isShutErrorPrinting) ignored() }.get(instance) + inline fun method(initiate: MethodConditions) = superClassSet.method(initiate).result { if (isIgnoreErrorLogs) ignored() }.get(instance) override fun toString() = "CurrentClass super [$superClassSet]" } diff --git a/yukireflection-core/src/main/java/com/highcapable/yukireflection/bean/GenericClass.kt b/yukireflection-core/src/main/java/com/highcapable/yukireflection/bean/GenericClass.kt index c1286e5..44f8f09 100644 --- a/yukireflection-core/src/main/java/com/highcapable/yukireflection/bean/GenericClass.kt +++ b/yukireflection-core/src/main/java/com/highcapable/yukireflection/bean/GenericClass.kt @@ -26,7 +26,7 @@ * This file is created by fankes on 2022/9/20. * This file is modified by fankes on 2023/1/21. */ -@file:Suppress("unused", "UNCHECKED_CAST") +@file:Suppress("unused", "UNCHECKED_CAST", "NON_PUBLIC_CALL_FROM_PUBLIC_INLINE") package com.highcapable.yukireflection.bean @@ -36,7 +36,7 @@ import java.lang.reflect.ParameterizedType * 当前 [Class] 的泛型父类操作对象 * @param type 类型声明实例 */ -class GenericClass internal constructor(@PublishedApi internal val type: ParameterizedType) { +class GenericClass internal constructor(private val type: ParameterizedType) { /** * 获得泛型参数数组下标的 [Class] 实例 diff --git a/yukireflection-core/src/main/java/com/highcapable/yukireflection/factory/ReflectionFactory.kt b/yukireflection-core/src/main/java/com/highcapable/yukireflection/factory/ReflectionFactory.kt index 59131b5..6f8615e 100644 --- a/yukireflection-core/src/main/java/com/highcapable/yukireflection/factory/ReflectionFactory.kt +++ b/yukireflection-core/src/main/java/com/highcapable/yukireflection/factory/ReflectionFactory.kt @@ -26,7 +26,7 @@ * This file is created by fankes on 2022/2/2. * This file is modified by fankes on 2023/1/21. */ -@file:Suppress("unused", "UNCHECKED_CAST") +@file:Suppress("unused", "UNCHECKED_CAST", "NON_PUBLIC_CALL_FROM_PUBLIC_INLINE") package com.highcapable.yukireflection.factory @@ -338,7 +338,7 @@ inline fun Class<*>.generic(initiate: GenericClass.() -> Unit) = generic()?.appl * @return [CurrentClass] */ inline fun T.current(ignored: Boolean = false) = - CurrentClass(javaClass, instance = this).apply { isShutErrorPrinting = ignored } + CurrentClass(javaClass, instance = this).apply { isIgnoreErrorLogs = ignored } /** * 获得当前实例的类操作对象 diff --git a/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/base/BaseFinder.kt b/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/base/BaseFinder.kt index 29aed6f..ad12ce1 100644 --- a/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/base/BaseFinder.kt +++ b/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/base/BaseFinder.kt @@ -28,7 +28,6 @@ */ package com.highcapable.yukireflection.finder.base -import com.highcapable.yukireflection.annotation.YukiPrivateApi import com.highcapable.yukireflection.bean.VariousClass import com.highcapable.yukireflection.factory.toClass import com.highcapable.yukireflection.finder.base.data.BaseRulesData @@ -42,20 +41,18 @@ import kotlin.math.abs abstract class BaseFinder { /** 当前查找条件规则数据 */ - @PublishedApi internal abstract val rulesData: BaseRulesData /** * 字节码、数组下标筛选数据类型 */ - @PublishedApi internal enum class IndexConfigType { ORDER, MATCH } /** * 字节码、数组下标筛选实现类 * @param type 类型 */ - inner class IndexTypeCondition @PublishedApi internal constructor(private val type: IndexConfigType) { + inner class IndexTypeCondition internal constructor(private val type: IndexConfigType) { /** * 设置下标 @@ -124,8 +121,7 @@ abstract class BaseFinder { * - ❗此功能交由方法体自动完成 - 你不应该手动调用此方法 * @return [BaseResult] */ - @YukiPrivateApi - abstract fun build(): BaseResult + internal abstract fun build(): BaseResult /** * 返回只有异常的结果实现类 @@ -134,14 +130,12 @@ abstract class BaseFinder { * @param throwable 异常 * @return [BaseResult] */ - @YukiPrivateApi - abstract fun failure(throwable: Throwable?): BaseResult + internal abstract fun failure(throwable: Throwable?): BaseResult /** * 查找结果实现、处理类接口 * * - ❗此功能交由方法体自动完成 - 你不应该手动继承此接口 */ - @YukiPrivateApi - interface BaseResult + internal interface BaseResult } \ No newline at end of file diff --git a/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/base/ClassBaseFinder.kt b/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/base/ClassBaseFinder.kt index 8a408c6..68da80a 100644 --- a/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/base/ClassBaseFinder.kt +++ b/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/base/ClassBaseFinder.kt @@ -29,7 +29,6 @@ package com.highcapable.yukireflection.finder.base import com.highcapable.yukireflection.YukiReflection -import com.highcapable.yukireflection.annotation.YukiPrivateApi import com.highcapable.yukireflection.utils.debug.YukiLog /** @@ -77,6 +76,5 @@ abstract class ClassBaseFinder internal constructor(internal open val loaderSet: YukiLog.error(msg = "NoClassDefFound happend in [$loaderSet]", e = e) } - @YukiPrivateApi override fun failure(throwable: Throwable?) = error("DexClassFinder does not contain this usage") } \ No newline at end of file diff --git a/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/base/MemberBaseFinder.kt b/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/base/MemberBaseFinder.kt index 6dc7a72..a8833d6 100644 --- a/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/base/MemberBaseFinder.kt +++ b/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/base/MemberBaseFinder.kt @@ -43,10 +43,7 @@ import java.lang.reflect.Method * @param tag 当前查找类的标识 * @param classSet 当前需要查找的 [Class] 实例 */ -abstract class MemberBaseFinder internal constructor( - private val tag: String, - @PublishedApi internal open val classSet: Class<*>? = null -) : BaseFinder() { +abstract class MemberBaseFinder internal constructor(private val tag: String, internal open val classSet: Class<*>? = null) : BaseFinder() { internal companion object { @@ -55,7 +52,6 @@ abstract class MemberBaseFinder internal constructor( } /** 是否使用了重查找功能 */ - @PublishedApi internal var isUsingRemedyPlan = false /** 是否开启忽略错误警告功能 */ diff --git a/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/base/data/BaseRulesData.kt b/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/base/data/BaseRulesData.kt index 036c9a5..e55c5cc 100644 --- a/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/base/data/BaseRulesData.kt +++ b/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/base/data/BaseRulesData.kt @@ -45,7 +45,6 @@ import java.lang.reflect.Method * @param orderIndex 字节码、数组顺序下标 * @param matchIndex 字节码、数组筛选下标 */ -@PublishedApi internal abstract class BaseRulesData internal constructor( var modifiers: ModifierConditions? = null, var orderIndex: Pair? = null, diff --git a/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/base/rules/CountRules.kt b/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/base/rules/CountRules.kt index bef29b8..efe0bd1 100644 --- a/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/base/rules/CountRules.kt +++ b/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/base/rules/CountRules.kt @@ -40,7 +40,6 @@ import java.lang.reflect.Member */ class CountRules private constructor(private val instance: Int) { - @PublishedApi internal companion object { /** @@ -48,7 +47,6 @@ class CountRules private constructor(private val instance: Int) { * @param instance 实例对象 * @return [CountRules] */ - @PublishedApi internal fun with(instance: Int) = CountRules(instance) } diff --git a/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/base/rules/ModifierRules.kt b/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/base/rules/ModifierRules.kt index 86d61ee..0463645 100644 --- a/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/base/rules/ModifierRules.kt +++ b/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/base/rules/ModifierRules.kt @@ -44,7 +44,6 @@ import java.lang.reflect.Modifier */ class ModifierRules private constructor(private val instance: Any) { - @PublishedApi internal companion object { /** 当前实例数组 */ @@ -63,7 +62,6 @@ class ModifierRules private constructor(private val instance: Any) { * @param value 唯一标识值 - 默认 0 * @return [ModifierRules] */ - @PublishedApi internal fun with(instance: Any, value: Long = 0) = ModifierRules(instance).apply { instances[value] = this } } diff --git a/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/base/rules/NameRules.kt b/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/base/rules/NameRules.kt index 06a6939..bfbe5b6 100644 --- a/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/base/rules/NameRules.kt +++ b/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/base/rules/NameRules.kt @@ -41,7 +41,6 @@ import java.lang.reflect.Member */ class NameRules private constructor(private val instance: String) { - @PublishedApi internal companion object { /** @@ -49,7 +48,6 @@ class NameRules private constructor(private val instance: String) { * @param instance 实例对象 * @return [NameRules] */ - @PublishedApi internal fun with(instance: String) = NameRules(instance) } diff --git a/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/base/rules/ObjectRules.kt b/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/base/rules/ObjectRules.kt index 4ed9bbb..fb38d3d 100644 --- a/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/base/rules/ObjectRules.kt +++ b/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/base/rules/ObjectRules.kt @@ -40,7 +40,6 @@ import java.lang.reflect.Member */ class ObjectRules private constructor(private val instance: Any) { - @PublishedApi internal companion object { /** @@ -48,7 +47,6 @@ class ObjectRules private constructor(private val instance: Any) { * @param instance 实例对象 * @return [ObjectRules] */ - @PublishedApi internal fun with(instance: Any) = ObjectRules(instance) } diff --git a/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/classes/DexClassFinder.kt b/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/classes/DexClassFinder.kt index 6bdad22..9be9e82 100644 --- a/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/classes/DexClassFinder.kt +++ b/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/classes/DexClassFinder.kt @@ -26,14 +26,13 @@ * This file is created by fankes on 2022/9/4. * This file is modified by fankes on 2023/1/25. */ -@file:Suppress("unused", "MemberVisibilityCanBePrivate") +@file:Suppress("unused", "MemberVisibilityCanBePrivate", "NON_PUBLIC_CALL_FROM_PUBLIC_INLINE") package com.highcapable.yukireflection.finder.classes import android.content.Context import android.content.SharedPreferences import android.content.pm.PackageManager -import com.highcapable.yukireflection.annotation.YukiPrivateApi import com.highcapable.yukireflection.factory.hasClass import com.highcapable.yukireflection.factory.searchClass import com.highcapable.yukireflection.factory.toClass @@ -68,7 +67,7 @@ import java.lang.reflect.Method * @param async 是否启用异步 * @param loaderSet 当前使用的 [ClassLoader] 实例 */ -class DexClassFinder @PublishedApi internal constructor( +class DexClassFinder internal constructor( private val context: Context?, internal var name: String, internal var async: Boolean, @@ -106,7 +105,6 @@ class DexClassFinder @PublishedApi internal constructor( context.currentSp(versionName, versionCode)?.edit()?.clear()?.apply() ?: YukiLog.warn(msg = "Failed to clear DexClassFinder's cache") } - @PublishedApi override var rulesData = ClassRulesData() /** @@ -467,7 +465,6 @@ class DexClassFinder @PublishedApi internal constructor( classes.takeIf { it.isNotEmpty() }?.forEach { classInstances.add(it) } } - @YukiPrivateApi override fun build() = runCatching { if (loaderSet != null) { /** 开始任务 */ @@ -500,8 +497,8 @@ class DexClassFinder @PublishedApi internal constructor( * @param throwable 错误信息 */ inner class Result internal constructor( - @PublishedApi internal var isNotFound: Boolean = false, - @PublishedApi internal var throwable: Throwable? = null + internal var isNotFound: Boolean = false, + internal var throwable: Throwable? = null ) : BaseResult { /** 异步方法体回调结果 */ diff --git a/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/classes/data/ClassRulesData.kt b/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/classes/data/ClassRulesData.kt index 5de6aba..ecac162 100644 --- a/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/classes/data/ClassRulesData.kt +++ b/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/classes/data/ClassRulesData.kt @@ -62,7 +62,6 @@ import java.lang.reflect.Method * @param methodRules [Method] 查找条件数据数组 * @param constroctorRules [Constructor] 查找条件数据数组 */ -@PublishedApi internal class ClassRulesData internal constructor( var fromPackages: ArrayList = arrayListOf(), var fullName: NameRulesData? = null, diff --git a/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/classes/rules/ConstructorRules.kt b/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/classes/rules/ConstructorRules.kt index 1a97d60..fe53d47 100644 --- a/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/classes/rules/ConstructorRules.kt +++ b/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/classes/rules/ConstructorRules.kt @@ -45,7 +45,7 @@ import java.lang.reflect.Constructor * [Constructor] 查找条件实现类 * @param rulesData 当前查找条件规则数据 */ -class ConstructorRules internal constructor(@PublishedApi internal val rulesData: ConstructorRulesData) : BaseRules() { +class ConstructorRules internal constructor(private val rulesData: ConstructorRulesData) : BaseRules() { /** * 设置 [Constructor] 参数个数 @@ -160,6 +160,5 @@ class ConstructorRules internal constructor(@PublishedApi internal val rulesData * 返回结果实现类 * @return [MemberRulesResult] */ - @PublishedApi internal fun build() = MemberRulesResult(rulesData) } \ No newline at end of file diff --git a/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/classes/rules/FieldRules.kt b/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/classes/rules/FieldRules.kt index 5718966..dad2e4c 100644 --- a/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/classes/rules/FieldRules.kt +++ b/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/classes/rules/FieldRules.kt @@ -41,7 +41,7 @@ import java.lang.reflect.Field * [Field] 查找条件实现类 * @param rulesData 当前查找条件规则数据 */ -class FieldRules internal constructor(@PublishedApi internal val rulesData: FieldRulesData) : BaseRules() { +class FieldRules internal constructor(private val rulesData: FieldRulesData) : BaseRules() { /** * 设置 [Field] 名称 @@ -105,6 +105,5 @@ class FieldRules internal constructor(@PublishedApi internal val rulesData: Fiel * 返回结果实现类 * @return [MemberRulesResult] */ - @PublishedApi internal fun build() = MemberRulesResult(rulesData) } \ No newline at end of file diff --git a/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/classes/rules/MemberRules.kt b/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/classes/rules/MemberRules.kt index 987efe1..04e3e7f 100644 --- a/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/classes/rules/MemberRules.kt +++ b/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/classes/rules/MemberRules.kt @@ -38,7 +38,7 @@ import java.lang.reflect.Member * [Member] 查找条件实现类 * @param rulesData 当前查找条件规则数据 */ -class MemberRules internal constructor(@PublishedApi internal val rulesData: MemberRulesData) : BaseRules() { +class MemberRules internal constructor(private val rulesData: MemberRulesData) : BaseRules() { /** * 设置 [Member] 标识符筛选条件 @@ -54,6 +54,5 @@ class MemberRules internal constructor(@PublishedApi internal val rulesData: Mem * 返回结果实现类 * @return [MemberRulesResult] */ - @PublishedApi internal fun build() = MemberRulesResult(rulesData) } \ No newline at end of file diff --git a/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/classes/rules/MethodRules.kt b/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/classes/rules/MethodRules.kt index 48730bf..be43ddf 100644 --- a/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/classes/rules/MethodRules.kt +++ b/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/classes/rules/MethodRules.kt @@ -47,7 +47,7 @@ import java.lang.reflect.Method * [Method] 查找条件实现类 * @param rulesData 当前查找条件规则数据 */ -class MethodRules internal constructor(@PublishedApi internal val rulesData: MethodRulesData) : BaseRules() { +class MethodRules internal constructor(private val rulesData: MethodRulesData) : BaseRules() { /** * 设置 [Method] 名称 @@ -210,6 +210,5 @@ class MethodRules internal constructor(@PublishedApi internal val rulesData: Met * 返回结果实现类 * @return [MemberRulesResult] */ - @PublishedApi internal fun build() = MemberRulesResult(rulesData) } \ No newline at end of file diff --git a/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/classes/rules/base/BaseRules.kt b/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/classes/rules/base/BaseRules.kt index c18b59c..bc1f0dd 100644 --- a/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/classes/rules/base/BaseRules.kt +++ b/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/classes/rules/base/BaseRules.kt @@ -45,7 +45,6 @@ import java.lang.reflect.Member */ open class BaseRules internal constructor(internal var instance: DexClassFinder? = null) { - @PublishedApi internal companion object { /** @@ -53,7 +52,6 @@ open class BaseRules internal constructor(internal var instance: DexClassFinder? * @param instance 当前查找类实例 * @return [MemberRulesData] */ - @PublishedApi internal fun createMemberRules(instance: DexClassFinder) = MemberRules(MemberRulesData().apply { instance.rulesData.memberRules.add(this) }).apply { this.instance = instance } @@ -61,7 +59,6 @@ open class BaseRules internal constructor(internal var instance: DexClassFinder? * 创建查找条件规则数据 * @return [FieldRulesData] */ - @PublishedApi internal fun createFieldRules(instance: DexClassFinder) = FieldRules(FieldRulesData().apply { instance.rulesData.fieldRules.add(this) }).apply { this.instance = instance } @@ -69,7 +66,6 @@ open class BaseRules internal constructor(internal var instance: DexClassFinder? * 创建查找条件规则数据 * @return [MethodRulesData] */ - @PublishedApi internal fun createMethodRules(instance: DexClassFinder) = MethodRules(MethodRulesData().apply { instance.rulesData.methodRules.add(this) }).apply { this.instance = instance } @@ -77,7 +73,6 @@ open class BaseRules internal constructor(internal var instance: DexClassFinder? * 创建查找条件规则数据 * @return [ConstructorRulesData] */ - @PublishedApi internal fun createConstructorRules(instance: DexClassFinder) = ConstructorRules(ConstructorRulesData().apply { instance.rulesData.constroctorRules.add(this) }).apply { this.instance = instance } } diff --git a/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/members/ConstructorFinder.kt b/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/members/ConstructorFinder.kt index 1ebe72d..982cd75 100644 --- a/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/members/ConstructorFinder.kt +++ b/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/members/ConstructorFinder.kt @@ -26,11 +26,10 @@ * This file is created by fankes on 2022/2/4. * This file is modified by fankes on 2023/1/21. */ -@file:Suppress("unused", "MemberVisibilityCanBePrivate", "UNCHECKED_CAST", "KotlinConstantConditions") +@file:Suppress("unused", "MemberVisibilityCanBePrivate", "UNCHECKED_CAST", "KotlinConstantConditions", "NON_PUBLIC_CALL_FROM_PUBLIC_INLINE") package com.highcapable.yukireflection.finder.members -import com.highcapable.yukireflection.annotation.YukiPrivateApi import com.highcapable.yukireflection.bean.VariousClass import com.highcapable.yukireflection.factory.hasExtends import com.highcapable.yukireflection.finder.base.BaseFinder @@ -53,10 +52,8 @@ import java.lang.reflect.Constructor * 可通过指定类型查找指定 [Constructor] 或一组 [Constructor] * @param classSet 当前需要查找的 [Class] 实例 */ -class ConstructorFinder @PublishedApi internal constructor(@PublishedApi override val classSet: Class<*>? = null) : - MemberBaseFinder(tag = "Constructor", classSet) { +class ConstructorFinder internal constructor(override val classSet: Class<*>? = null) : MemberBaseFinder(tag = "Constructor", classSet) { - @PublishedApi override var rulesData = ConstructorRulesData() /** 当前使用的 [classSet] */ @@ -252,7 +249,6 @@ class ConstructorFinder @PublishedApi internal constructor(@PublishedApi overrid } } - @YukiPrivateApi override fun build() = runCatching { internalBuild() Result() @@ -261,7 +257,6 @@ class ConstructorFinder @PublishedApi internal constructor(@PublishedApi overrid Result(isNoSuch = true, it) } - @YukiPrivateApi override fun failure(throwable: Throwable?) = Result(isNoSuch = true, throwable) /** @@ -269,11 +264,10 @@ class ConstructorFinder @PublishedApi internal constructor(@PublishedApi overrid * * 可累计失败次数直到查找成功 */ - inner class RemedyPlan @PublishedApi internal constructor() { + inner class RemedyPlan internal constructor() { /** 失败尝试次数数组 */ - @PublishedApi - internal val remedyPlans = HashSet>() + private val remedyPlans = HashSet>() /** * 创建需要重新查找的 [Constructor] @@ -287,7 +281,6 @@ class ConstructorFinder @PublishedApi internal constructor(@PublishedApi overrid Result().apply { remedyPlans.add(ConstructorFinder(classSet).apply(initiate) to this) } /** 开始重查找 */ - @PublishedApi internal fun build() { if (classSet == null) return if (remedyPlans.isNotEmpty()) { @@ -319,7 +312,7 @@ class ConstructorFinder @PublishedApi internal constructor(@PublishedApi overrid * * 可在这里处理是否成功的回调 */ - inner class Result @PublishedApi internal constructor() { + inner class Result internal constructor() { /** 找到结果时的回调 */ internal var onFindCallback: (HashSet>.() -> Unit)? = null @@ -340,8 +333,8 @@ class ConstructorFinder @PublishedApi internal constructor(@PublishedApi overrid * @param throwable 错误信息 */ inner class Result internal constructor( - @PublishedApi internal val isNoSuch: Boolean = false, - @PublishedApi internal val throwable: Throwable? = null + internal val isNoSuch: Boolean = false, + internal val throwable: Throwable? = null ) : BaseResult { /** diff --git a/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/members/FieldFinder.kt b/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/members/FieldFinder.kt index ff9e918..689ce9a 100644 --- a/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/members/FieldFinder.kt +++ b/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/members/FieldFinder.kt @@ -26,11 +26,10 @@ * This file is created by fankes on 2022/2/4. * This file is modified by fankes on 2023/1/21. */ -@file:Suppress("unused", "UNCHECKED_CAST", "MemberVisibilityCanBePrivate", "KotlinConstantConditions") +@file:Suppress("unused", "UNCHECKED_CAST", "MemberVisibilityCanBePrivate", "KotlinConstantConditions", "NON_PUBLIC_CALL_FROM_PUBLIC_INLINE") package com.highcapable.yukireflection.finder.members -import com.highcapable.yukireflection.annotation.YukiPrivateApi import com.highcapable.yukireflection.bean.CurrentClass import com.highcapable.yukireflection.bean.VariousClass import com.highcapable.yukireflection.factory.current @@ -53,10 +52,8 @@ import java.lang.reflect.Field * 可通过指定类型查找指定 [Field] 或一组 [Field] * @param classSet 当前需要查找的 [Class] 实例 */ -class FieldFinder @PublishedApi internal constructor(@PublishedApi override val classSet: Class<*>? = null) : - MemberBaseFinder(tag = "Field", classSet) { +class FieldFinder internal constructor(override val classSet: Class<*>? = null) : MemberBaseFinder(tag = "Field", classSet) { - @PublishedApi override var rulesData = FieldRulesData() /** 当前使用的 [classSet] */ @@ -210,7 +207,6 @@ class FieldFinder @PublishedApi internal constructor(@PublishedApi override val } } - @YukiPrivateApi override fun build() = runCatching { internalBuild() Result() @@ -219,7 +215,6 @@ class FieldFinder @PublishedApi internal constructor(@PublishedApi override val Result(isNoSuch = true, it) } - @YukiPrivateApi override fun failure(throwable: Throwable?) = Result(isNoSuch = true, throwable) /** @@ -227,11 +222,10 @@ class FieldFinder @PublishedApi internal constructor(@PublishedApi override val * * 可累计失败次数直到查找成功 */ - inner class RemedyPlan @PublishedApi internal constructor() { + inner class RemedyPlan internal constructor() { /** 失败尝试次数数组 */ - @PublishedApi - internal val remedyPlans = HashSet>() + private val remedyPlans = HashSet>() /** * 创建需要重新查找的 [Field] @@ -245,7 +239,6 @@ class FieldFinder @PublishedApi internal constructor(@PublishedApi override val inline fun field(initiate: FieldConditions) = Result().apply { remedyPlans.add(FieldFinder(classSet).apply(initiate) to this) } /** 开始重查找 */ - @PublishedApi internal fun build() { if (classSet == null) return if (remedyPlans.isNotEmpty()) { @@ -277,7 +270,7 @@ class FieldFinder @PublishedApi internal constructor(@PublishedApi override val * * 可在这里处理是否成功的回调 */ - inner class Result @PublishedApi internal constructor() { + inner class Result internal constructor() { /** 找到结果时的回调 */ internal var onFindCallback: (HashSet.() -> Unit)? = null @@ -299,8 +292,8 @@ class FieldFinder @PublishedApi internal constructor(@PublishedApi override val * @param throwable 错误信息 */ inner class Result internal constructor( - @PublishedApi internal val isNoSuch: Boolean = false, - private val throwable: Throwable? = null + internal val isNoSuch: Boolean = false, + internal val throwable: Throwable? = null ) : BaseResult { /** @@ -448,9 +441,7 @@ class FieldFinder @PublishedApi internal constructor(@PublishedApi override val * - 若要直接获取不确定的实例对象 - 请调用 [any] 方法 * @return [Any] or null */ - @PublishedApi - internal val self - get() = field?.get(instance) + private val self get() = field?.get(instance) /** * 获得当前 [Field] 自身 [self] 实例的类操作对象 diff --git a/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/members/MethodFinder.kt b/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/members/MethodFinder.kt index 3b3af5c..872de0f 100644 --- a/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/members/MethodFinder.kt +++ b/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/members/MethodFinder.kt @@ -26,11 +26,10 @@ * This file is created by fankes on 2022/2/4. * This file is modified by fankes on 2023/1/21. */ -@file:Suppress("unused", "MemberVisibilityCanBePrivate", "UNCHECKED_CAST", "KotlinConstantConditions") +@file:Suppress("unused", "MemberVisibilityCanBePrivate", "UNCHECKED_CAST", "KotlinConstantConditions", "NON_PUBLIC_CALL_FROM_PUBLIC_INLINE") package com.highcapable.yukireflection.finder.members -import com.highcapable.yukireflection.annotation.YukiPrivateApi import com.highcapable.yukireflection.bean.VariousClass import com.highcapable.yukireflection.factory.hasExtends import com.highcapable.yukireflection.finder.base.BaseFinder @@ -55,10 +54,8 @@ import java.lang.reflect.Method * 可通过指定类型查找指定 [Method] 或一组 [Method] * @param classSet 当前需要查找的 [Class] 实例 */ -class MethodFinder @PublishedApi internal constructor(@PublishedApi override val classSet: Class<*>? = null) : - MemberBaseFinder(tag = "Method", classSet) { +class MethodFinder internal constructor(override val classSet: Class<*>? = null) : MemberBaseFinder(tag = "Method", classSet) { - @PublishedApi override var rulesData = MethodRulesData() /** 当前使用的 [classSet] */ @@ -344,7 +341,6 @@ class MethodFinder @PublishedApi internal constructor(@PublishedApi override val } } - @YukiPrivateApi override fun build() = runCatching { internalBuild() Result() @@ -353,7 +349,6 @@ class MethodFinder @PublishedApi internal constructor(@PublishedApi override val Result(isNoSuch = true, it) } - @YukiPrivateApi override fun failure(throwable: Throwable?) = Result(isNoSuch = true, throwable) /** @@ -361,11 +356,10 @@ class MethodFinder @PublishedApi internal constructor(@PublishedApi override val * * 可累计失败次数直到查找成功 */ - inner class RemedyPlan @PublishedApi internal constructor() { + inner class RemedyPlan internal constructor() { /** 失败尝试次数数组 */ - @PublishedApi - internal val remedyPlans = HashSet>() + private val remedyPlans = HashSet>() /** * 创建需要重新查找的 [Method] @@ -379,7 +373,6 @@ class MethodFinder @PublishedApi internal constructor(@PublishedApi override val inline fun method(initiate: MethodConditions) = Result().apply { remedyPlans.add(MethodFinder(classSet).apply(initiate) to this) } /** 开始重查找 */ - @PublishedApi internal fun build() { if (classSet == null) return if (remedyPlans.isNotEmpty()) { @@ -411,7 +404,7 @@ class MethodFinder @PublishedApi internal constructor(@PublishedApi override val * * 可在这里处理是否成功的回调 */ - inner class Result @PublishedApi internal constructor() { + inner class Result internal constructor() { /** 找到结果时的回调 */ internal var onFindCallback: (HashSet.() -> Unit)? = null @@ -432,8 +425,8 @@ class MethodFinder @PublishedApi internal constructor(@PublishedApi override val * @param throwable 错误信息 */ inner class Result internal constructor( - @PublishedApi internal val isNoSuch: Boolean = false, - @PublishedApi internal val throwable: Throwable? = null + internal val isNoSuch: Boolean = false, + internal val throwable: Throwable? = null ) : BaseResult { /** diff --git a/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/members/data/ConstructorRulesData.kt b/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/members/data/ConstructorRulesData.kt index d394501..99dbba0 100644 --- a/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/members/data/ConstructorRulesData.kt +++ b/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/members/data/ConstructorRulesData.kt @@ -40,7 +40,6 @@ import java.lang.reflect.Constructor * @param paramCountRange 参数个数范围 * @param paramCountConditions 参数个数条件 */ -@PublishedApi internal class ConstructorRulesData internal constructor( var paramTypes: Array>? = null, var paramTypesConditions: ObjectsConditions? = null, diff --git a/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/members/data/FieldRulesData.kt b/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/members/data/FieldRulesData.kt index cb0f1a0..a3bcb7f 100644 --- a/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/members/data/FieldRulesData.kt +++ b/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/members/data/FieldRulesData.kt @@ -39,7 +39,6 @@ import java.lang.reflect.Field * @param type 类型 * @param typeConditions 类型条件 */ -@PublishedApi internal class FieldRulesData internal constructor( var name: String = "", var nameConditions: NameConditions? = null, diff --git a/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/members/data/MemberRulesData.kt b/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/members/data/MemberRulesData.kt index 9f3adf4..8a5b34d 100644 --- a/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/members/data/MemberRulesData.kt +++ b/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/members/data/MemberRulesData.kt @@ -40,7 +40,6 @@ import java.lang.reflect.Member * @param matchCountRange 匹配的字节码个数范围 * @param matchCountConditions 匹配的字节码个数条件 */ -@PublishedApi internal open class MemberRulesData internal constructor( var isFindInSuper: Boolean = false, var matchCount: Int = -1, diff --git a/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/members/data/MethodRulesData.kt b/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/members/data/MethodRulesData.kt index 45998da..087bb0d 100644 --- a/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/members/data/MethodRulesData.kt +++ b/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/members/data/MethodRulesData.kt @@ -46,7 +46,6 @@ import java.lang.reflect.Method * @param returnType 返回值类型 * @param returnTypeConditions 返回值类型条件 */ -@PublishedApi internal class MethodRulesData internal constructor( var name: String = "", var nameConditions: NameConditions? = null, diff --git a/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/tools/ReflectionTool.kt b/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/tools/ReflectionTool.kt index e413cb6..889fb16 100644 --- a/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/tools/ReflectionTool.kt +++ b/yukireflection-core/src/main/java/com/highcapable/yukireflection/finder/tools/ReflectionTool.kt @@ -68,7 +68,6 @@ import kotlin.math.abs /** * 这是一个对 [Class]、[Member] 查找的工具实现类 */ -@PublishedApi internal object ReflectionTool { /** 当前工具类的标签 */ @@ -125,7 +124,6 @@ internal object ReflectionTool { * @return [Class] * @throws NoClassDefFoundError 如果找不到 [Class] 或设置了错误的 [ClassLoader] */ - @PublishedApi internal fun findClassByName(name: String, loader: ClassLoader?, initialize: Boolean = false): Class<*> { val uniqueCode = "[$name][$loader]"