Full Code of baidu/Rubik for AI

main 065ba8f4652b cached
794 files
1.0 MB
315.6k tokens
46 symbols
1 requests
Download .txt
Showing preview only (1,323K chars total). Download the full file or copy to clipboard to get everything.
Repository: baidu/Rubik
Branch: main
Commit: 065ba8f4652b
Files: 794
Total size: 1.0 MB

Directory structure:
gitextract_e_w543jg/

├── LICENSE
├── README.md
├── README_en.md
├── build.gradle
├── demo/
│   ├── demo_component_detail/
│   │   ├── build.gradle
│   │   ├── consumer-rules.pro
│   │   ├── proguard-rules.pro
│   │   └── src/
│   │       └── main/
│   │           ├── AndroidManifest.xml
│   │           ├── java/
│   │           │   └── com/
│   │           │       └── mars/
│   │           │           └── component/
│   │           │               └── detail/
│   │           │                   ├── api/
│   │           │                   │   ├── AipsInCompanion.kt
│   │           │                   │   ├── AipsInTop.kt
│   │           │                   │   ├── ApiSerialization.kt
│   │           │                   │   ├── Apis.kt
│   │           │                   │   ├── ApisAsyncReturn.kt
│   │           │                   │   ├── ApisBadCase.kt
│   │           │                   │   ├── ApisBigData.kt
│   │           │                   │   ├── ApisExt.kt
│   │           │                   │   ├── ApisProvideInstance.kt
│   │           │                   │   ├── ApisWithLiveData.kt
│   │           │                   │   └── ApisWithResultReceiver.kt
│   │           │                   ├── callback/
│   │           │                   │   ├── CallbackTestDefault.kt
│   │           │                   │   └── CallbackTestInterface.kt
│   │           │                   ├── event/
│   │           │                   │   └── Events.kt
│   │           │                   ├── objekt/
│   │           │                   │   ├── ObjectTest.kt
│   │           │                   │   └── ObjectTestCteate.kt
│   │           │                   ├── test/
│   │           │                   │   ├── TestDataTypeTask.kt
│   │           │                   │   ├── TestDefaultPathTask.kt
│   │           │                   │   └── TestGenericityTask.kt
│   │           │                   ├── ui/
│   │           │                   │   ├── FirstPageActivity.kt
│   │           │                   │   ├── FirstPageFragment.kt
│   │           │                   │   └── SecondPageActivity.kt
│   │           │                   └── value/
│   │           │                       ├── TestCompanionBean.kt
│   │           │                       ├── TestCreateBean.kt
│   │           │                       ├── TestDataBean.kt
│   │           │                       ├── TestDataNotRValueBean.kt
│   │           │                       ├── TestListBean.kt
│   │           │                       ├── TestNullableBean.kt
│   │           │                       ├── TestOriginalBean.kt
│   │           │                       ├── TestParcelizeBean.kt
│   │           │                       ├── TestSerializableBean.kt
│   │           │                       └── mapping/
│   │           │                           ├── TestDataMappingBean.kt
│   │           │                           └── TestNestDataMappingBean.kt
│   │           ├── ra/
│   │           │   └── rubik/
│   │           │       └── generate/
│   │           │           └── aggregate/
│   │           │               └── demo_com_mars_rubik_test_detail/
│   │           │                   └── DetailAggregate.kt
│   │           └── res/
│   │               ├── layout/
│   │               │   └── activity_a1.xml
│   │               └── values/
│   │                   └── strings.xml
│   ├── demo_component_detail_java/
│   │   ├── build.gradle
│   │   ├── consumer-rules.pro
│   │   ├── proguard-rules.pro
│   │   └── src/
│   │       └── main/
│   │           ├── AndroidManifest.xml
│   │           ├── aggregate/
│   │           │   └── rubik/
│   │           │       └── generate/
│   │           │           └── aggregate/
│   │           │               └── demo_com_mars_rubik_test_detail_java/
│   │           │                   └── DetailJavaAggregate.kt
│   │           ├── java/
│   │           │   └── com/
│   │           │       └── mars/
│   │           │           └── component/
│   │           │               └── detail/
│   │           │                   └── java/
│   │           │                       ├── api/
│   │           │                       │   ├── Apis.java
│   │           │                       │   ├── ApisAsyncReturn.java
│   │           │                       │   ├── ApisForInstance.java
│   │           │                       │   ├── BaseApis.java
│   │           │                       │   └── callback/
│   │           │                       │       ├── Callback.java
│   │           │                       │       └── Callbackable.java
│   │           │                       ├── test/
│   │           │                       │   └── TestJavaDataType.java
│   │           │                       ├── ui/
│   │           │                       │   ├── FirstPageActivity.java
│   │           │                       │   └── SecondActivity.java
│   │           │                       └── value/
│   │           │                           └── TestJavaBean.java
│   │           └── res/
│   │               ├── layout/
│   │               │   └── activity_d1.xml
│   │               └── values/
│   │                   └── strings.xml
│   ├── demo_component_home/
│   │   ├── build.gradle
│   │   ├── consumer-rules.pro
│   │   ├── proguard-rules.pro
│   │   └── src/
│   │       └── main/
│   │           ├── AndroidManifest.xml
│   │           ├── aggregate/
│   │           │   └── rubik/
│   │           │       └── generate/
│   │           │           └── aggregate/
│   │           │               └── demo_com_mars_rubik_test_home/
│   │           │                   └── HomeAggregate.kt
│   │           ├── java/
│   │           │   └── com/
│   │           │       └── mars/
│   │           │           └── component/
│   │           │               └── home/
│   │           │                   ├── api/
│   │           │                   │   └── TestOne.kt
│   │           │                   ├── event/
│   │           │                   │   └── Events.kt
│   │           │                   ├── test/
│   │           │                   │   ├── java/
│   │           │                   │   │   ├── TestJavaInvokeBuilderTask.java
│   │           │                   │   │   ├── TestJavaInvokeFunctionTask.java
│   │           │                   │   │   └── TestJavaInvokeJavaFunctionTask.java
│   │           │                   │   └── kotlin/
│   │           │                   │       ├── TestBigData.kt
│   │           │                   │       ├── TestDataType.kt
│   │           │                   │       ├── TestKotlinInvokeActionFunctionJavaTask.kt
│   │           │                   │       ├── TestKotlinInvokeActionFunctionTask.kt
│   │           │                   │       ├── TestKotlinInvokeDSLTask.kt
│   │           │                   │       └── TestKotlinInvokeRouteFunctionTask.kt
│   │           │                   └── ui/
│   │           │                       ├── HomeActivity.kt
│   │           │                       ├── HomeFragment.kt
│   │           │                       └── java/
│   │           │                           └── JavaHomeActivity.java
│   │           └── res/
│   │               ├── layout/
│   │               │   ├── activity_java.xml
│   │               │   ├── activity_kotlin.xml
│   │               │   └── fragment_b1.xml
│   │               └── values/
│   │                   └── strings.xml
│   ├── demo_root_app/
│   │   ├── build.gradle
│   │   ├── proguard-rules.pro
│   │   └── src/
│   │       ├── androidTest/
│   │       │   └── java/
│   │       │       └── com/
│   │       │           └── mars/
│   │       │               └── component/
│   │       │                   └── test/
│   │       │                       └── RouterTestCase.kt
│   │       └── main/
│   │           ├── AndroidManifest.xml
│   │           ├── java/
│   │           │   └── com/
│   │           │       └── baidu/
│   │           │           └── kcomponent/
│   │           │               ├── MainActivity.kt
│   │           │               └── MainApplication.kt
│   │           └── res/
│   │               ├── drawable/
│   │               │   └── ic_launcher_background.xml
│   │               ├── drawable-v24/
│   │               │   └── ic_launcher_foreground.xml
│   │               ├── layout/
│   │               │   └── activity_main.xml
│   │               ├── mipmap-anydpi-v26/
│   │               │   ├── ic_launcher.xml
│   │               │   └── ic_launcher_round.xml
│   │               └── values/
│   │                   ├── colors.xml
│   │                   ├── strings.xml
│   │                   └── styles.xml
│   ├── demo_until_library_a/
│   │   ├── build.gradle
│   │   ├── consumer-rules.pro
│   │   ├── proguard-rules.pro
│   │   └── src/
│   │       └── main/
│   │           ├── AndroidManifest.xml
│   │           └── java/
│   │               └── com/
│   │                   └── mars/
│   │                       └── util_library/
│   │                           ├── TestClassA.kt
│   │                           └── TestLibDataBean.kt
│   ├── demo_until_library_b/
│   │   ├── build.gradle
│   │   ├── consumer-rules.pro
│   │   ├── proguard-rules.pro
│   │   └── src/
│   │       ├── main/
│   │       │   ├── AndroidManifest.xml
│   │       │   └── java/
│   │       │       └── com/
│   │       │           └── mars/
│   │       │               └── util_library/
│   │       │                   └── TestClassB.kt
│   │       └── testex/
│   │           └── java/
│   │               └── com/
│   │                   └── x/
│   │                       ├── Xx.kt
│   │                       └── Yx.java
│   ├── demo_until_library_c_java/
│   │   ├── build.gradle
│   │   ├── consumer-rules.pro
│   │   ├── proguard-rules.pro
│   │   └── src/
│   │       └── main/
│   │           ├── AndroidManifest.xml
│   │           └── java/
│   │               └── TestClassC.kt
│   ├── rubik-components.gradle
│   └── rubik-packing.gradle
├── gradle/
│   └── wrapper/
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties
├── gradle.properties
├── gradlew
├── gradlew.bat
├── rubik/
│   ├── rubik_annotations/
│   │   ├── build.gradle
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               └── com/
│   │                   └── rubik/
│   │                       └── annotations/
│   │                           ├── context/
│   │                           │   ├── REvent.java
│   │                           │   ├── REventRepeatable.java
│   │                           │   ├── assist/
│   │                           │   │   ├── REventAssist.java
│   │                           │   │   └── REventAssistRepeatable.java
│   │                           │   └── instance/
│   │                           │       ├── REventInstance.java
│   │                           │       └── REventInstanceRepeatable.java
│   │                           ├── route/
│   │                           │   ├── RCallback.java
│   │                           │   ├── RExtend.java
│   │                           │   ├── RInstance.java
│   │                           │   ├── RInstanceRepeatable.java
│   │                           │   ├── RObject.java
│   │                           │   ├── RProperty.java
│   │                           │   ├── RResult.java
│   │                           │   ├── RRoute.java
│   │                           │   ├── RRouteRepeatable.java
│   │                           │   ├── RValue.java
│   │                           │   ├── assist/
│   │                           │   │   ├── RRouteAssist.java
│   │                           │   │   └── RRouteAssistRepeatable.java
│   │                           │   ├── function/
│   │                           │   │   ├── RDefaultType.java
│   │                           │   │   ├── RFunction.java
│   │                           │   │   └── RFunctionRepeatable.java
│   │                           │   ├── instance/
│   │                           │   │   ├── RRouteInstance.java
│   │                           │   │   └── RRouteInstanceRepeatable.java
│   │                           │   └── page/
│   │                           │       ├── RPage.java
│   │                           │       └── RPageRepeatable.java
│   │                           └── source/
│   │                               ├── RAggregate.java
│   │                               ├── RComponent.java
│   │                               ├── RContext.java
│   │                               ├── RContextLib.java
│   │                               ├── RGenerated.java
│   │                               ├── RGeneratedRouter.java
│   │                               ├── RGeneratedValue.java
│   │                               └── ROriginalValue.java
│   ├── rubik_context/
│   │   ├── build.gradle
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               └── com/
│   │                   └── rubik/
│   │                       ├── context/
│   │                       │   ├── Dependency.kt
│   │                       │   ├── Ext.kt
│   │                       │   ├── MavenSource.kt
│   │                       │   ├── Source.kt
│   │                       │   ├── container/
│   │                       │   │   └── ContextsContainer.kt
│   │                       │   ├── exception/
│   │                       │   │   ├── RubikComponentUndefinedException.kt
│   │                       │   │   ├── RubikDSLDefaultGroupNotSetException.kt
│   │                       │   │   ├── RubikDSLDefaultSchemeNotSetException.kt
│   │                       │   │   ├── RubikMultipleComponentDefinedException.kt
│   │                       │   │   └── RubikPluginNotApplyException.kt
│   │                       │   ├── extra/
│   │                       │   │   ├── Context.kt
│   │                       │   │   ├── Injector.kt
│   │                       │   │   └── Rubik.kt
│   │                       │   ├── folder/
│   │                       │   │   ├── ClassesTmpDir.kt
│   │                       │   │   ├── GeneratedSourceDir.kt
│   │                       │   │   └── LibsTmpDir.kt
│   │                       │   ├── id/
│   │                       │   │   ├── ContextIdHolder.kt
│   │                       │   │   └── LeastContext.kt
│   │                       │   ├── log/
│   │                       │   │   └── LogTags.kt
│   │                       │   ├── publication/
│   │                       │   │   ├── BuildType.kt
│   │                       │   │   └── LibType.kt
│   │                       │   ├── router/
│   │                       │   │   └── RouterRegister.kt
│   │                       │   └── utility/
│   │                       │       ├── KApt.kt
│   │                       │       ├── Module.kt
│   │                       │       └── Uri.kt
│   │                       └── global/
│   │                           └── GlobalConfig.kt
│   ├── rubik_dsl/
│   │   ├── build.gradle
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               └── com/
│   │                   └── rubik/
│   │                       └── dsl/
│   │                           ├── DSLRubik.kt
│   │                           ├── RDSL.java
│   │                           ├── context/
│   │                           │   ├── DSLContext.kt
│   │                           │   ├── dependency/
│   │                           │   │   ├── DSLDependencies.kt
│   │                           │   │   └── DSLDependency.kt
│   │                           │   └── source/
│   │                           │       ├── DSLMavenSource.kt
│   │                           │       ├── DSLProjectSource.kt
│   │                           │       └── DSLSource.kt
│   │                           ├── exception/
│   │                           │   └── RubikDSLComponentUriException.kt
│   │                           ├── global/
│   │                           │   ├── DSLGlobalConfig.kt
│   │                           │   ├── DSLGlobalContextConfig.kt
│   │                           │   └── DSLGlobalMavenConfig.kt
│   │                           └── packing/
│   │                               ├── DSLExcept.kt
│   │                               ├── DSLPacking.kt
│   │                               ├── DSLPackingHow.kt
│   │                               └── DSLPackingNoSource.kt
│   ├── rubik_kapt/
│   │   ├── build.gradle
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               ├── ByVersion.kt
│   │               └── com/
│   │                   └── rubik/
│   │                       └── apt/
│   │                           ├── Constants.kt
│   │                           ├── RContextProcessService.java
│   │                           ├── RContextProcessor.kt
│   │                           ├── annotation/
│   │                           │   ├── AnnotationData.kt
│   │                           │   ├── Callback.kt
│   │                           │   ├── CodebaseObtainer.kt
│   │                           │   ├── Event.kt
│   │                           │   ├── EventInstance.kt
│   │                           │   ├── Object.kt
│   │                           │   ├── Route.kt
│   │                           │   ├── RouteInstance.kt
│   │                           │   └── Value.kt
│   │                           ├── codebase/
│   │                           │   ├── AnnotationCodeBase.kt
│   │                           │   ├── ClassMirrorable.kt
│   │                           │   ├── RToken.kt
│   │                           │   ├── RouteCodeBase.kt
│   │                           │   ├── activity/
│   │                           │   │   ├── ActivityCodeBase.kt
│   │                           │   │   └── ActivityPropertyCodeBase.kt
│   │                           │   ├── api/
│   │                           │   │   ├── ApiCodeBase.kt
│   │                           │   │   ├── ApiInstanceCodeBase.kt
│   │                           │   │   ├── QueryCodeBase.kt
│   │                           │   │   └── ResultCodeBase.kt
│   │                           │   ├── callback/
│   │                           │   │   ├── FunctionCallbackCodeBase.kt
│   │                           │   │   └── ObjectCallbackCodeBase.kt
│   │                           │   ├── context/
│   │                           │   │   ├── ContextCodeBase.kt
│   │                           │   │   └── SectionCodeBase.kt
│   │                           │   ├── event/
│   │                           │   │   ├── EventCodeBase.kt
│   │                           │   │   └── EventInstanceCodeBase.kt
│   │                           │   ├── invoker/
│   │                           │   │   ├── Callbackable.kt
│   │                           │   │   ├── Instanceable.kt
│   │                           │   │   ├── InvokeContextCodeBase.kt
│   │                           │   │   ├── InvokeFunctionCodeBase.kt
│   │                           │   │   ├── InvokeOriginalCodeBase.kt
│   │                           │   │   ├── LambdaTypeCodeBase.kt
│   │                           │   │   ├── OriginalInvokable.kt
│   │                           │   │   └── TypeCodeBase.kt
│   │                           │   ├── objekt/
│   │                           │   │   └── ObjectCodeBase.kt
│   │                           │   └── value/
│   │                           │       ├── ValueCodeBase.kt
│   │                           │       └── ValueFieldCodeBase.kt
│   │                           ├── declare/
│   │                           │   └── LeastContext.kt
│   │                           ├── files/
│   │                           │   └── source/
│   │                           │       ├── AggregateSourceFile.kt
│   │                           │       ├── ContextSourceFiles.kt
│   │                           │       ├── aggregate/
│   │                           │       │   ├── CallbackTransformCode.kt
│   │                           │       │   ├── FactoryCode.kt
│   │                           │       │   ├── InvokeOriginalCode.kt
│   │                           │       │   ├── MappingType.kt
│   │                           │       │   ├── OnEventCode.kt
│   │                           │       │   ├── OnRouteCode.kt
│   │                           │       │   ├── QueryCode.kt
│   │                           │       │   └── RouteActionsImplCode.kt
│   │                           │       ├── context/
│   │                           │       │   ├── TouchCode.kt
│   │                           │       │   ├── action/
│   │                           │       │   │   ├── ApiRouteActionFunctionCode.kt
│   │                           │       │   │   └── inceface/
│   │                           │       │   │       ├── RouteActionFunctionCode.kt
│   │                           │       │   │       └── RouteActionsSourceFile.kt
│   │                           │       │   └── dsl/
│   │                           │       │       ├── ActivityDSLFuntionCode.kt
│   │                           │       │       ├── ApiDSLFunctionCode.kt
│   │                           │       │       └── DSLRouteContextSourceFiles.kt
│   │                           │       ├── identity/
│   │                           │       │   └── IdentitySourceFile.kt
│   │                           │       └── mirror/
│   │                           │           ├── callback/
│   │                           │           │   └── CallbackSourceFiles.kt
│   │                           │           ├── objekt/
│   │                           │           │   └── ObjectSourceFiles.kt
│   │                           │           └── value/
│   │                           │               ├── ValueCode.kt
│   │                           │               └── ValueSourceFiles.kt
│   │                           ├── namebox/
│   │                           │   ├── FileNameBox.kt
│   │                           │   └── MappingMatrix.kt
│   │                           ├── plugin/
│   │                           │   ├── Arguments.kt
│   │                           │   └── PluginArguments.kt
│   │                           └── utility/
│   │                               ├── Code.kt
│   │                               ├── Element.kt
│   │                               ├── FilePath.kt
│   │                               ├── KotlinPoet.kt
│   │                               └── RType.kt
│   ├── rubik_maven_repositories.gradle
│   ├── rubik_picker/
│   │   ├── build.gradle
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               └── com/
│   │                   └── rubik/
│   │                       ├── pick/
│   │                       │   ├── Excepted.kt
│   │                       │   ├── PickHow.kt
│   │                       │   ├── PickWhat.kt
│   │                       │   └── PickWhere.kt
│   │                       └── picker/
│   │                           ├── ContextPickHow.kt
│   │                           ├── ContextPicker.kt
│   │                           ├── MavenPicker.kt
│   │                           ├── PickCase.kt
│   │                           ├── Picker.kt
│   │                           ├── ProjectPicker.kt
│   │                           ├── TmpDirLibPicker.kt
│   │                           ├── container/
│   │                           │   ├── ContextPickHowContainer.kt
│   │                           │   └── PickedContextsContainer.kt
│   │                           ├── exception/
│   │                           │   ├── RubikMavenDependencyVersionNotSetException.kt
│   │                           │   ├── RubikMavenVariantNotSetException.kt
│   │                           │   ├── RubikMavenVersionNotSetException.kt
│   │                           │   ├── RubikProjectNotFoundException.kt
│   │                           │   ├── RubikProjectPathNotSetException.kt
│   │                           │   └── RubikPublicationTypeNotConfigureException.kt
│   │                           ├── extra/
│   │                           │   ├── Context.kt
│   │                           │   └── Injector.kt
│   │                           └── log/
│   │                               └── LogTags.kt
│   ├── rubik_plugins/
│   │   ├── build.gradle
│   │   └── src/
│   │       └── main/
│   │           ├── java/
│   │           │   ├── ByVersion.kt
│   │           │   └── com/
│   │           │       └── rubik/
│   │           │           └── plugins/
│   │           │               ├── MainPlugin.kt
│   │           │               ├── RubikPlugin.kt
│   │           │               ├── analyst/
│   │           │               │   └── AnalystPlugin.kt
│   │           │               ├── basic/
│   │           │               │   ├── Constants.kt
│   │           │               │   ├── LogTags.kt
│   │           │               │   ├── exception/
│   │           │               │   │   ├── RubikException.kt
│   │           │               │   │   ├── RubikKaptDependencyNotSetException.kt
│   │           │               │   │   ├── RubikNotCalculatePublicationException.kt
│   │           │               │   │   ├── RubikPackingNotSupportException.kt
│   │           │               │   │   ├── RubikProjectNoKotlinAndroidPluginException.kt
│   │           │               │   │   ├── RubikRouterAndContextVersionsNotMatchException.kt
│   │           │               │   │   └── RubikRouterDependencyNotSetException.kt
│   │           │               │   ├── extra/
│   │           │               │   │   └── Rubik.kt
│   │           │               │   ├── transform/
│   │           │               │   │   ├── MakeLibsTransform.kt
│   │           │               │   │   └── RubikTransform.kt
│   │           │               │   └── utility/
│   │           │               │       ├── Code.kt
│   │           │               │       ├── Javassist.kt
│   │           │               │       └── KotlinPoet.kt
│   │           │               ├── context/
│   │           │               │   ├── ContextPlugin.kt
│   │           │               │   ├── controller/
│   │           │               │   │   ├── AllContextController.kt
│   │           │               │   │   ├── ComponentIdGeneratingController.kt
│   │           │               │   │   ├── ContextKaptController.kt
│   │           │               │   │   └── ProjectSyncController.kt
│   │           │               │   └── generate/
│   │           │               │       └── file/
│   │           │               │           ├── IdentitySourceFile.kt
│   │           │               │           └── ProjectSettingsFile.kt
│   │           │               ├── extension/
│   │           │               │   ├── RubikExtension.kt
│   │           │               │   └── RubikSingletonExtension.kt
│   │           │               └── shell/
│   │           │                   ├── ShellPlugin.kt
│   │           │                   ├── checker/
│   │           │                   │   ├── CheckClassesRule.kt
│   │           │                   │   ├── CheckClassesTransform.kt
│   │           │                   │   ├── context/
│   │           │                   │   │   ├── CheckContextVersionRule.kt
│   │           │                   │   │   └── CheckContextVersionTransform.kt
│   │           │                   │   └── router/
│   │           │                   │       ├── CheckRouterVersionRule.kt
│   │           │                   │       └── CheckRouterVersionTransform.kt
│   │           │                   ├── controller/
│   │           │                   │   ├── ShellConfigGeneratingController.kt
│   │           │                   │   └── ShellSourceGeneratingController.kt
│   │           │                   └── generate/
│   │           │                       └── files/
│   │           │                           ├── RubikIdCheckerSourceFile.kt
│   │           │                           └── RubikInitializerSourceFile.kt
│   │           └── resources/
│   │               └── META-INF/
│   │                   └── gradle-plugins/
│   │                       ├── rubik-analyst.properties
│   │                       ├── rubik-context.properties
│   │                       ├── rubik-shell.properties
│   │                       └── rubik.properties
│   ├── rubik_publish/
│   │   ├── build.gradle
│   │   └── src/
│   │       ├── k1_5/
│   │       │   └── java/
│   │       │       └── ResetKotlinCompileTask.kt
│   │       ├── k1_7/
│   │       │   └── java/
│   │       │       └── ResetKotlinCompileTask.kt
│   │       └── main/
│   │           └── java/
│   │               ├── ByPluginVersion.kt
│   │               └── com/
│   │                   └── rubik/
│   │                       └── publish/
│   │                           ├── exception/
│   │                           │   ├── RubikNoClassesToJarException.kt
│   │                           │   ├── RubikNoKaptTaskFoundException.kt
│   │                           │   ├── RubikNoKotlinCompileFoundException.kt
│   │                           │   ├── RubikNoSourceToCompileException.kt
│   │                           │   ├── RubikPublishVersionNotSetException.kt
│   │                           │   └── RubikTaskStateError.kt
│   │                           ├── extension/
│   │                           │   └── ContextRecordExtension.kt
│   │                           ├── extra/
│   │                           │   ├── Context.kt
│   │                           │   ├── Injector.kt
│   │                           │   └── Rubik.kt
│   │                           ├── log/
│   │                           │   └── LogTags.kt
│   │                           ├── publication/
│   │                           │   ├── Component.kt
│   │                           │   ├── Jar.kt
│   │                           │   ├── Lib.kt
│   │                           │   └── SourceCode.kt
│   │                           ├── record/
│   │                           │   ├── ContextPublicationRecords.kt
│   │                           │   ├── PublicationRecord.kt
│   │                           │   ├── generate/
│   │                           │   │   └── file/
│   │                           │   │       └── RubikPublicationRecordFiles.kt
│   │                           │   └── version/
│   │                           │       └── StandardVersion.kt
│   │                           └── task/
│   │                               ├── GlobalPublishTasksController.kt
│   │                               ├── PublishContextTask.kt
│   │                               ├── PublishContextTaskController.kt
│   │                               ├── PublishContextTaskGroup.kt
│   │                               ├── PublishContextTasksContainer.kt
│   │                               ├── both/
│   │                               │   ├── ComponentAndContextLibsTask.kt
│   │                               │   ├── ComponentAndContextLibsTaskGraphic.kt
│   │                               │   ├── PackingLinkComponentAndContextLibsTask.kt
│   │                               │   ├── VariantComponentAndContextLibsTask.kt
│   │                               │   └── VariantComponentAndContextLibsTaskGraphic.kt
│   │                               ├── component/
│   │                               │   ├── ComponentTask.kt
│   │                               │   ├── ComponentTaskGraphic.kt
│   │                               │   ├── PackingLinkComponentTask.kt
│   │                               │   ├── VariantComponentTask.kt
│   │                               │   └── VariantComponentTaskGraphic.kt
│   │                               ├── global/
│   │                               │   ├── AllComponentAndContextLibsTask.kt
│   │                               │   ├── AllComponentTask.kt
│   │                               │   ├── AllContextLibsTask.kt
│   │                               │   ├── TagComponentAndContextLibsTask.kt
│   │                               │   ├── TagComponentTask.kt
│   │                               │   └── TagContextLibsTask.kt
│   │                               ├── lib/
│   │                               │   ├── ContextLibTask.kt
│   │                               │   ├── ContextLibTaskGraphic.kt
│   │                               │   └── state/
│   │                               │       └── ContextLibStateMachine.kt
│   │                               ├── name/
│   │                               │   ├── PublishByMeaning.kt
│   │                               │   ├── PublishTaskName.kt
│   │                               │   └── PublishTaskNameMeaning.kt
│   │                               ├── provider/
│   │                               │   ├── CopySourceTaskProvider.kt
│   │                               │   ├── JarTaskProvider.kt
│   │                               │   └── KotlinCompileTaskProvider.kt
│   │                               └── target/
│   │                                   ├── TaskTarget.kt
│   │                                   ├── TaskTargetContainer.kt
│   │                                   └── TaskTargetController.kt
│   └── rubik_router/
│       ├── build.gradle
│       ├── consumer-rules.pro
│       ├── proguard-rules.pro
│       └── src/
│           └── main/
│               ├── AndroidManifest.xml
│               ├── java/
│               │   └── com/
│               │       └── rubik/
│               │           ├── Rubik.kt
│               │           ├── activity/
│               │           │   └── Launcher.kt
│               │           ├── builder/
│               │           │   ├── query/
│               │           │   │   ├── BundleQueriesBuilder.kt
│               │           │   │   ├── DSLLaunchQueriesBuilder.kt
│               │           │   │   ├── LinkedLaunchQueriesBuilder.kt
│               │           │   │   ├── QueriesBuilder.kt
│               │           │   │   └── QueriesFrameable.kt
│               │           │   ├── result/
│               │           │   │   └── ResultsBuildable.kt
│               │           │   └── router/
│               │           │       ├── BasicRouterBuilder.kt
│               │           │       ├── DSLApiRouterBuilder.kt
│               │           │       ├── DSLLaunchRouterBuilder.kt
│               │           │       ├── LinkedApiRouterBuilder.kt
│               │           │       ├── LinkedLaunchRouterBuilder.kt
│               │           │       └── RouterBuildable.kt
│               │           ├── context/
│               │           │   ├── Aggregatable.kt
│               │           │   ├── LifeCycleEvent.kt
│               │           │   └── RouteActions.kt
│               │           ├── identity/
│               │           │   ├── IdentityChecker.kt
│               │           │   ├── RIdentity.kt
│               │           │   └── exception/
│               │           │       ├── DuplicateComponentException.kt
│               │           │       ├── DuplicateContextException.kt
│               │           │       ├── RIdentityCheckFailedException.kt
│               │           │       ├── RIdentityNotFoundException.kt
│               │           │       └── UriNotConformException.kt
│               │           ├── logger/
│               │           │   └── Logger.kt
│               │           ├── route/
│               │           │   ├── LaunchQueries.kt
│               │           │   ├── Object.kt
│               │           │   ├── Queries.kt
│               │           │   ├── Query.kt
│               │           │   ├── Result.kt
│               │           │   ├── ResultGroups.kt
│               │           │   ├── Results.kt
│               │           │   ├── exception/
│               │           │   │   ├── BadAggregatableClassException.kt
│               │           │   │   ├── BadPathOrVersionException.kt
│               │           │   │   ├── BadQueryException.kt
│               │           │   │   ├── BadResultException.kt
│               │           │   │   ├── BadTypeException.kt
│               │           │   │   ├── BadUriException.kt
│               │           │   │   ├── BadValueException.kt
│               │           │   │   ├── DuplicateRegisteredUriException.kt
│               │           │   │   └── ParcelableNoCreatorException.kt
│               │           │   └── mapping/
│               │           │       ├── Bundle.kt
│               │           │       ├── JsonMapping.kt
│               │           │       ├── LiveDataMapping.kt
│               │           │       ├── ParcelMapping.kt
│               │           │       └── TypeMapping.kt
│               │           └── router/
│               │               ├── Router.kt
│               │               ├── RouterResult.kt
│               │               ├── TouchHolder.kt
│               │               ├── annotations/
│               │               │   └── RInvariant.kt
│               │               ├── exception/
│               │               │   ├── BadRubikVersionException.kt
│               │               │   ├── BadUriException.kt
│               │               │   ├── RContextNotFoundException.kt
│               │               │   ├── RubikAggregateNotFoundException.kt
│               │               │   └── RubikNotInitException.kt
│               │               └── uri/
│               │                   └── Path.kt
│               └── res/
│                   └── values/
│                       └── strings.xml
├── rubik_libs_repository/
│   ├── demo_com_mars_rubik_test_detail/
│   │   ├── context/
│   │   │   └── detail-lib-context.jar
│   │   └── context_sources/
│   │       └── detail-lib-context-sources.jar
│   ├── demo_com_mars_rubik_test_detail_java/
│   │   ├── context/
│   │   │   └── detail-java-lib-context.jar
│   │   └── context_sources/
│   │       └── detail-java-lib-context-sources.jar
│   ├── demo_com_mars_rubik_test_home/
│   │   ├── context/
│   │   │   └── home-lib-context.jar
│   │   └── context_sources/
│   │       └── home-lib-context-sources.jar
│   ├── rubik-demo_com_mars_rubik_test_detail-publication-records.gradle
│   ├── rubik-demo_com_mars_rubik_test_detail_java-publication-records.gradle
│   └── rubik-demo_com_mars_rubik_test_home-publication-records.gradle
├── rubik_maven_local_repository/
│   └── com/
│       ├── kotlin/
│       │   └── blueprint/
│       │       ├── 5.1.12-K1_5/
│       │       │   ├── blueprint-5.1.12-K1_5.jar
│       │       │   ├── blueprint-5.1.12-K1_5.jar.md5
│       │       │   ├── blueprint-5.1.12-K1_5.jar.sha1
│       │       │   └── blueprint-5.1.12-K1_5.pom
│       │       ├── maven-metadata.xml
│       │       ├── maven-metadata.xml.md5
│       │       ├── maven-metadata.xml.sha1
│       │       ├── maven-metadata.xml.sha256
│       │       └── maven-metadata.xml.sha512
│       ├── ktnail/
│       │   ├── gradle/
│       │   │   ├── 0.1.1-AGBT4_2-K1_5/
│       │   │   │   ├── gradle-0.1.1-AGBT4_2-K1_5.jar
│       │   │   │   ├── gradle-0.1.1-AGBT4_2-K1_5.jar.md5
│       │   │   │   ├── gradle-0.1.1-AGBT4_2-K1_5.jar.sha1
│       │   │   │   ├── gradle-0.1.1-AGBT4_2-K1_5.jar.sha256
│       │   │   │   ├── gradle-0.1.1-AGBT4_2-K1_5.jar.sha512
│       │   │   │   ├── gradle-0.1.1-AGBT4_2-K1_5.module
│       │   │   │   ├── gradle-0.1.1-AGBT4_2-K1_5.module.md5
│       │   │   │   ├── gradle-0.1.1-AGBT4_2-K1_5.module.sha1
│       │   │   │   ├── gradle-0.1.1-AGBT4_2-K1_5.module.sha256
│       │   │   │   ├── gradle-0.1.1-AGBT4_2-K1_5.module.sha512
│       │   │   │   ├── gradle-0.1.1-AGBT4_2-K1_5.pom
│       │   │   │   ├── gradle-0.1.1-AGBT4_2-K1_5.pom.md5
│       │   │   │   ├── gradle-0.1.1-AGBT4_2-K1_5.pom.sha1
│       │   │   │   ├── gradle-0.1.1-AGBT4_2-K1_5.pom.sha256
│       │   │   │   └── gradle-0.1.1-AGBT4_2-K1_5.pom.sha512
│       │   │   ├── maven-metadata.xml
│       │   │   ├── maven-metadata.xml.md5
│       │   │   ├── maven-metadata.xml.sha1
│       │   │   ├── maven-metadata.xml.sha256
│       │   │   └── maven-metadata.xml.sha512
│       │   └── x/
│       │       ├── 0.0.62-K1_5/
│       │       │   ├── x-0.0.62-K1_5.jar
│       │       │   ├── x-0.0.62-K1_5.jar.md5
│       │       │   ├── x-0.0.62-K1_5.jar.sha1
│       │       │   └── x-0.0.62-K1_5.pom
│       │       ├── 0.0.67-K1_5/
│       │       │   ├── x-0.0.67-K1_5.jar
│       │       │   ├── x-0.0.67-K1_5.jar.md5
│       │       │   ├── x-0.0.67-K1_5.jar.sha1
│       │       │   ├── x-0.0.67-K1_5.jar.sha256
│       │       │   ├── x-0.0.67-K1_5.jar.sha512
│       │       │   ├── x-0.0.67-K1_5.module
│       │       │   ├── x-0.0.67-K1_5.module.md5
│       │       │   ├── x-0.0.67-K1_5.module.sha1
│       │       │   ├── x-0.0.67-K1_5.module.sha256
│       │       │   ├── x-0.0.67-K1_5.module.sha512
│       │       │   ├── x-0.0.67-K1_5.pom
│       │       │   ├── x-0.0.67-K1_5.pom.md5
│       │       │   ├── x-0.0.67-K1_5.pom.sha1
│       │       │   ├── x-0.0.67-K1_5.pom.sha256
│       │       │   └── x-0.0.67-K1_5.pom.sha512
│       │       ├── maven-metadata.xml
│       │       ├── maven-metadata.xml.md5
│       │       ├── maven-metadata.xml.sha1
│       │       ├── maven-metadata.xml.sha256
│       │       └── maven-metadata.xml.sha512
│       ├── mars/
│       │   └── rubik-test/
│       │       ├── detail-component-company1-channel1-release/
│       │       │   ├── 0.0.1-DEV/
│       │       │   │   ├── detail-component-company1-channel1-release-0.0.1-DEV.aar
│       │       │   │   ├── detail-component-company1-channel1-release-0.0.1-DEV.aar.md5
│       │       │   │   ├── detail-component-company1-channel1-release-0.0.1-DEV.aar.sha1
│       │       │   │   ├── detail-component-company1-channel1-release-0.0.1-DEV.aar.sha256
│       │       │   │   ├── detail-component-company1-channel1-release-0.0.1-DEV.aar.sha512
│       │       │   │   ├── detail-component-company1-channel1-release-0.0.1-DEV.pom
│       │       │   │   ├── detail-component-company1-channel1-release-0.0.1-DEV.pom.md5
│       │       │   │   ├── detail-component-company1-channel1-release-0.0.1-DEV.pom.sha1
│       │       │   │   ├── detail-component-company1-channel1-release-0.0.1-DEV.pom.sha256
│       │       │   │   └── detail-component-company1-channel1-release-0.0.1-DEV.pom.sha512
│       │       │   ├── maven-metadata.xml
│       │       │   ├── maven-metadata.xml.md5
│       │       │   ├── maven-metadata.xml.sha1
│       │       │   ├── maven-metadata.xml.sha256
│       │       │   └── maven-metadata.xml.sha512
│       │       ├── detail-component-company1-channel2-release/
│       │       │   ├── 0.0.1-DEV/
│       │       │   │   ├── detail-component-company1-channel2-release-0.0.1-DEV.aar
│       │       │   │   ├── detail-component-company1-channel2-release-0.0.1-DEV.aar.md5
│       │       │   │   ├── detail-component-company1-channel2-release-0.0.1-DEV.aar.sha1
│       │       │   │   ├── detail-component-company1-channel2-release-0.0.1-DEV.aar.sha256
│       │       │   │   ├── detail-component-company1-channel2-release-0.0.1-DEV.aar.sha512
│       │       │   │   ├── detail-component-company1-channel2-release-0.0.1-DEV.pom
│       │       │   │   ├── detail-component-company1-channel2-release-0.0.1-DEV.pom.md5
│       │       │   │   ├── detail-component-company1-channel2-release-0.0.1-DEV.pom.sha1
│       │       │   │   ├── detail-component-company1-channel2-release-0.0.1-DEV.pom.sha256
│       │       │   │   └── detail-component-company1-channel2-release-0.0.1-DEV.pom.sha512
│       │       │   ├── maven-metadata.xml
│       │       │   ├── maven-metadata.xml.md5
│       │       │   ├── maven-metadata.xml.sha1
│       │       │   ├── maven-metadata.xml.sha256
│       │       │   └── maven-metadata.xml.sha512
│       │       ├── detail-java-component-release/
│       │       │   ├── 0.0.1-DEV/
│       │       │   │   ├── detail-java-component-release-0.0.1-DEV.aar
│       │       │   │   ├── detail-java-component-release-0.0.1-DEV.aar.md5
│       │       │   │   ├── detail-java-component-release-0.0.1-DEV.aar.sha1
│       │       │   │   ├── detail-java-component-release-0.0.1-DEV.aar.sha256
│       │       │   │   ├── detail-java-component-release-0.0.1-DEV.aar.sha512
│       │       │   │   ├── detail-java-component-release-0.0.1-DEV.pom
│       │       │   │   ├── detail-java-component-release-0.0.1-DEV.pom.md5
│       │       │   │   ├── detail-java-component-release-0.0.1-DEV.pom.sha1
│       │       │   │   ├── detail-java-component-release-0.0.1-DEV.pom.sha256
│       │       │   │   └── detail-java-component-release-0.0.1-DEV.pom.sha512
│       │       │   ├── maven-metadata.xml
│       │       │   ├── maven-metadata.xml.md5
│       │       │   ├── maven-metadata.xml.sha1
│       │       │   ├── maven-metadata.xml.sha256
│       │       │   └── maven-metadata.xml.sha512
│       │       ├── detail-java-lib-context/
│       │       │   ├── 0.0.1-DEV/
│       │       │   │   ├── detail-java-lib-context-0.0.1-DEV-sources.jar
│       │       │   │   ├── detail-java-lib-context-0.0.1-DEV-sources.jar.md5
│       │       │   │   ├── detail-java-lib-context-0.0.1-DEV-sources.jar.sha1
│       │       │   │   ├── detail-java-lib-context-0.0.1-DEV-sources.jar.sha256
│       │       │   │   ├── detail-java-lib-context-0.0.1-DEV-sources.jar.sha512
│       │       │   │   ├── detail-java-lib-context-0.0.1-DEV.jar
│       │       │   │   ├── detail-java-lib-context-0.0.1-DEV.jar.md5
│       │       │   │   ├── detail-java-lib-context-0.0.1-DEV.jar.sha1
│       │       │   │   ├── detail-java-lib-context-0.0.1-DEV.jar.sha256
│       │       │   │   ├── detail-java-lib-context-0.0.1-DEV.jar.sha512
│       │       │   │   ├── detail-java-lib-context-0.0.1-DEV.pom
│       │       │   │   ├── detail-java-lib-context-0.0.1-DEV.pom.md5
│       │       │   │   ├── detail-java-lib-context-0.0.1-DEV.pom.sha1
│       │       │   │   ├── detail-java-lib-context-0.0.1-DEV.pom.sha256
│       │       │   │   └── detail-java-lib-context-0.0.1-DEV.pom.sha512
│       │       │   ├── maven-metadata.xml
│       │       │   ├── maven-metadata.xml.md5
│       │       │   ├── maven-metadata.xml.sha1
│       │       │   ├── maven-metadata.xml.sha256
│       │       │   └── maven-metadata.xml.sha512
│       │       ├── detail-lib-context/
│       │       │   ├── 0.0.1-DEV/
│       │       │   │   ├── detail-lib-context-0.0.1-DEV-sources.jar
│       │       │   │   ├── detail-lib-context-0.0.1-DEV-sources.jar.md5
│       │       │   │   ├── detail-lib-context-0.0.1-DEV-sources.jar.sha1
│       │       │   │   ├── detail-lib-context-0.0.1-DEV-sources.jar.sha256
│       │       │   │   ├── detail-lib-context-0.0.1-DEV-sources.jar.sha512
│       │       │   │   ├── detail-lib-context-0.0.1-DEV.jar
│       │       │   │   ├── detail-lib-context-0.0.1-DEV.jar.md5
│       │       │   │   ├── detail-lib-context-0.0.1-DEV.jar.sha1
│       │       │   │   ├── detail-lib-context-0.0.1-DEV.jar.sha256
│       │       │   │   ├── detail-lib-context-0.0.1-DEV.jar.sha512
│       │       │   │   ├── detail-lib-context-0.0.1-DEV.pom
│       │       │   │   ├── detail-lib-context-0.0.1-DEV.pom.md5
│       │       │   │   ├── detail-lib-context-0.0.1-DEV.pom.sha1
│       │       │   │   ├── detail-lib-context-0.0.1-DEV.pom.sha256
│       │       │   │   └── detail-lib-context-0.0.1-DEV.pom.sha512
│       │       │   ├── maven-metadata.xml
│       │       │   ├── maven-metadata.xml.md5
│       │       │   ├── maven-metadata.xml.sha1
│       │       │   ├── maven-metadata.xml.sha256
│       │       │   └── maven-metadata.xml.sha512
│       │       └── home-lib-context/
│       │           ├── 0.0.1-DEV/
│       │           │   ├── home-lib-context-0.0.1-DEV-sources.jar
│       │           │   ├── home-lib-context-0.0.1-DEV-sources.jar.md5
│       │           │   ├── home-lib-context-0.0.1-DEV-sources.jar.sha1
│       │           │   ├── home-lib-context-0.0.1-DEV-sources.jar.sha256
│       │           │   ├── home-lib-context-0.0.1-DEV-sources.jar.sha512
│       │           │   ├── home-lib-context-0.0.1-DEV.jar
│       │           │   ├── home-lib-context-0.0.1-DEV.jar.md5
│       │           │   ├── home-lib-context-0.0.1-DEV.jar.sha1
│       │           │   ├── home-lib-context-0.0.1-DEV.jar.sha256
│       │           │   ├── home-lib-context-0.0.1-DEV.jar.sha512
│       │           │   ├── home-lib-context-0.0.1-DEV.pom
│       │           │   ├── home-lib-context-0.0.1-DEV.pom.md5
│       │           │   ├── home-lib-context-0.0.1-DEV.pom.sha1
│       │           │   ├── home-lib-context-0.0.1-DEV.pom.sha256
│       │           │   └── home-lib-context-0.0.1-DEV.pom.sha512
│       │           ├── maven-metadata.xml
│       │           ├── maven-metadata.xml.md5
│       │           ├── maven-metadata.xml.sha1
│       │           ├── maven-metadata.xml.sha256
│       │           └── maven-metadata.xml.sha512
│       ├── rubik/
│       │   ├── annotations/
│       │   │   ├── 1.10.0.0-LOCAL/
│       │   │   │   ├── annotations-1.10.0.0-LOCAL.jar
│       │   │   │   ├── annotations-1.10.0.0-LOCAL.jar.md5
│       │   │   │   ├── annotations-1.10.0.0-LOCAL.jar.sha1
│       │   │   │   ├── annotations-1.10.0.0-LOCAL.jar.sha256
│       │   │   │   ├── annotations-1.10.0.0-LOCAL.jar.sha512
│       │   │   │   ├── annotations-1.10.0.0-LOCAL.pom
│       │   │   │   ├── annotations-1.10.0.0-LOCAL.pom.md5
│       │   │   │   ├── annotations-1.10.0.0-LOCAL.pom.sha1
│       │   │   │   ├── annotations-1.10.0.0-LOCAL.pom.sha256
│       │   │   │   └── annotations-1.10.0.0-LOCAL.pom.sha512
│       │   │   ├── maven-metadata.xml
│       │   │   ├── maven-metadata.xml.md5
│       │   │   ├── maven-metadata.xml.sha1
│       │   │   ├── maven-metadata.xml.sha256
│       │   │   └── maven-metadata.xml.sha512
│       │   ├── context/
│       │   │   ├── 1.10.0.0-AGBT4_2-K1_5-LOCAL/
│       │   │   │   ├── context-1.10.0.0-AGBT4_2-K1_5-LOCAL.jar
│       │   │   │   ├── context-1.10.0.0-AGBT4_2-K1_5-LOCAL.jar.md5
│       │   │   │   ├── context-1.10.0.0-AGBT4_2-K1_5-LOCAL.jar.sha1
│       │   │   │   ├── context-1.10.0.0-AGBT4_2-K1_5-LOCAL.jar.sha256
│       │   │   │   ├── context-1.10.0.0-AGBT4_2-K1_5-LOCAL.jar.sha512
│       │   │   │   ├── context-1.10.0.0-AGBT4_2-K1_5-LOCAL.pom
│       │   │   │   ├── context-1.10.0.0-AGBT4_2-K1_5-LOCAL.pom.md5
│       │   │   │   ├── context-1.10.0.0-AGBT4_2-K1_5-LOCAL.pom.sha1
│       │   │   │   ├── context-1.10.0.0-AGBT4_2-K1_5-LOCAL.pom.sha256
│       │   │   │   └── context-1.10.0.0-AGBT4_2-K1_5-LOCAL.pom.sha512
│       │   │   ├── maven-metadata.xml
│       │   │   ├── maven-metadata.xml.md5
│       │   │   ├── maven-metadata.xml.sha1
│       │   │   ├── maven-metadata.xml.sha256
│       │   │   └── maven-metadata.xml.sha512
│       │   ├── dsl/
│       │   │   ├── 1.10.0.0-AGBT4_2-K1_5-LOCAL/
│       │   │   │   ├── dsl-1.10.0.0-AGBT4_2-K1_5-LOCAL.jar
│       │   │   │   ├── dsl-1.10.0.0-AGBT4_2-K1_5-LOCAL.jar.md5
│       │   │   │   ├── dsl-1.10.0.0-AGBT4_2-K1_5-LOCAL.jar.sha1
│       │   │   │   ├── dsl-1.10.0.0-AGBT4_2-K1_5-LOCAL.jar.sha256
│       │   │   │   ├── dsl-1.10.0.0-AGBT4_2-K1_5-LOCAL.jar.sha512
│       │   │   │   ├── dsl-1.10.0.0-AGBT4_2-K1_5-LOCAL.pom
│       │   │   │   ├── dsl-1.10.0.0-AGBT4_2-K1_5-LOCAL.pom.md5
│       │   │   │   ├── dsl-1.10.0.0-AGBT4_2-K1_5-LOCAL.pom.sha1
│       │   │   │   ├── dsl-1.10.0.0-AGBT4_2-K1_5-LOCAL.pom.sha256
│       │   │   │   └── dsl-1.10.0.0-AGBT4_2-K1_5-LOCAL.pom.sha512
│       │   │   ├── maven-metadata.xml
│       │   │   ├── maven-metadata.xml.md5
│       │   │   ├── maven-metadata.xml.sha1
│       │   │   ├── maven-metadata.xml.sha256
│       │   │   └── maven-metadata.xml.sha512
│       │   ├── kapt/
│       │   │   ├── 1.10.0.0-K1_5-LOCAL/
│       │   │   │   ├── kapt-1.10.0.0-K1_5-LOCAL.jar
│       │   │   │   ├── kapt-1.10.0.0-K1_5-LOCAL.jar.md5
│       │   │   │   ├── kapt-1.10.0.0-K1_5-LOCAL.jar.sha1
│       │   │   │   ├── kapt-1.10.0.0-K1_5-LOCAL.jar.sha256
│       │   │   │   ├── kapt-1.10.0.0-K1_5-LOCAL.jar.sha512
│       │   │   │   ├── kapt-1.10.0.0-K1_5-LOCAL.pom
│       │   │   │   ├── kapt-1.10.0.0-K1_5-LOCAL.pom.md5
│       │   │   │   ├── kapt-1.10.0.0-K1_5-LOCAL.pom.sha1
│       │   │   │   ├── kapt-1.10.0.0-K1_5-LOCAL.pom.sha256
│       │   │   │   └── kapt-1.10.0.0-K1_5-LOCAL.pom.sha512
│       │   │   ├── maven-metadata.xml
│       │   │   ├── maven-metadata.xml.md5
│       │   │   ├── maven-metadata.xml.sha1
│       │   │   ├── maven-metadata.xml.sha256
│       │   │   └── maven-metadata.xml.sha512
│       │   ├── picker/
│       │   │   ├── 1.10.0.0-AGBT4_2-K1_5-LOCAL/
│       │   │   │   ├── picker-1.10.0.0-AGBT4_2-K1_5-LOCAL.jar
│       │   │   │   ├── picker-1.10.0.0-AGBT4_2-K1_5-LOCAL.jar.md5
│       │   │   │   ├── picker-1.10.0.0-AGBT4_2-K1_5-LOCAL.jar.sha1
│       │   │   │   ├── picker-1.10.0.0-AGBT4_2-K1_5-LOCAL.jar.sha256
│       │   │   │   ├── picker-1.10.0.0-AGBT4_2-K1_5-LOCAL.jar.sha512
│       │   │   │   ├── picker-1.10.0.0-AGBT4_2-K1_5-LOCAL.pom
│       │   │   │   ├── picker-1.10.0.0-AGBT4_2-K1_5-LOCAL.pom.md5
│       │   │   │   ├── picker-1.10.0.0-AGBT4_2-K1_5-LOCAL.pom.sha1
│       │   │   │   ├── picker-1.10.0.0-AGBT4_2-K1_5-LOCAL.pom.sha256
│       │   │   │   └── picker-1.10.0.0-AGBT4_2-K1_5-LOCAL.pom.sha512
│       │   │   ├── maven-metadata.xml
│       │   │   ├── maven-metadata.xml.md5
│       │   │   ├── maven-metadata.xml.sha1
│       │   │   ├── maven-metadata.xml.sha256
│       │   │   └── maven-metadata.xml.sha512
│       │   ├── plugins/
│       │   │   ├── 1.10.0.0-AGBT4_2-K1_5-LOCAL/
│       │   │   │   ├── plugins-1.10.0.0-AGBT4_2-K1_5-LOCAL.jar
│       │   │   │   ├── plugins-1.10.0.0-AGBT4_2-K1_5-LOCAL.jar.md5
│       │   │   │   ├── plugins-1.10.0.0-AGBT4_2-K1_5-LOCAL.jar.sha1
│       │   │   │   ├── plugins-1.10.0.0-AGBT4_2-K1_5-LOCAL.jar.sha256
│       │   │   │   ├── plugins-1.10.0.0-AGBT4_2-K1_5-LOCAL.jar.sha512
│       │   │   │   ├── plugins-1.10.0.0-AGBT4_2-K1_5-LOCAL.pom
│       │   │   │   ├── plugins-1.10.0.0-AGBT4_2-K1_5-LOCAL.pom.md5
│       │   │   │   ├── plugins-1.10.0.0-AGBT4_2-K1_5-LOCAL.pom.sha1
│       │   │   │   ├── plugins-1.10.0.0-AGBT4_2-K1_5-LOCAL.pom.sha256
│       │   │   │   └── plugins-1.10.0.0-AGBT4_2-K1_5-LOCAL.pom.sha512
│       │   │   ├── maven-metadata.xml
│       │   │   ├── maven-metadata.xml.md5
│       │   │   ├── maven-metadata.xml.sha1
│       │   │   ├── maven-metadata.xml.sha256
│       │   │   └── maven-metadata.xml.sha512
│       │   ├── publish/
│       │   │   ├── 1.10.0.0-AGBT4_2-K1_5-LOCAL/
│       │   │   │   ├── publish-1.10.0.0-AGBT4_2-K1_5-LOCAL.jar
│       │   │   │   ├── publish-1.10.0.0-AGBT4_2-K1_5-LOCAL.jar.md5
│       │   │   │   ├── publish-1.10.0.0-AGBT4_2-K1_5-LOCAL.jar.sha1
│       │   │   │   ├── publish-1.10.0.0-AGBT4_2-K1_5-LOCAL.jar.sha256
│       │   │   │   ├── publish-1.10.0.0-AGBT4_2-K1_5-LOCAL.jar.sha512
│       │   │   │   ├── publish-1.10.0.0-AGBT4_2-K1_5-LOCAL.pom
│       │   │   │   ├── publish-1.10.0.0-AGBT4_2-K1_5-LOCAL.pom.md5
│       │   │   │   ├── publish-1.10.0.0-AGBT4_2-K1_5-LOCAL.pom.sha1
│       │   │   │   ├── publish-1.10.0.0-AGBT4_2-K1_5-LOCAL.pom.sha256
│       │   │   │   └── publish-1.10.0.0-AGBT4_2-K1_5-LOCAL.pom.sha512
│       │   │   ├── maven-metadata.xml
│       │   │   ├── maven-metadata.xml.md5
│       │   │   ├── maven-metadata.xml.sha1
│       │   │   ├── maven-metadata.xml.sha256
│       │   │   └── maven-metadata.xml.sha512
│       │   └── router/
│       │       ├── 1.10.0.0-K1_5-LOCAL/
│       │       │   ├── router-1.10.0.0-K1_5-LOCAL.jar
│       │       │   ├── router-1.10.0.0-K1_5-LOCAL.jar.md5
│       │       │   ├── router-1.10.0.0-K1_5-LOCAL.jar.sha1
│       │       │   ├── router-1.10.0.0-K1_5-LOCAL.jar.sha256
│       │       │   ├── router-1.10.0.0-K1_5-LOCAL.jar.sha512
│       │       │   ├── router-1.10.0.0-K1_5-LOCAL.pom
│       │       │   ├── router-1.10.0.0-K1_5-LOCAL.pom.md5
│       │       │   ├── router-1.10.0.0-K1_5-LOCAL.pom.sha1
│       │       │   ├── router-1.10.0.0-K1_5-LOCAL.pom.sha256
│       │       │   └── router-1.10.0.0-K1_5-LOCAL.pom.sha512
│       │       ├── maven-metadata.xml
│       │       ├── maven-metadata.xml.md5
│       │       ├── maven-metadata.xml.sha1
│       │       ├── maven-metadata.xml.sha256
│       │       └── maven-metadata.xml.sha512
│       └── synccode/
│           └── syncer/
│               ├── 0.0.8-K1_5/
│               │   ├── syncer-0.0.8-K1_5.jar
│               │   ├── syncer-0.0.8-K1_5.jar.md5
│               │   ├── syncer-0.0.8-K1_5.jar.sha1
│               │   ├── syncer-0.0.8-K1_5.jar.sha256
│               │   ├── syncer-0.0.8-K1_5.jar.sha512
│               │   ├── syncer-0.0.8-K1_5.module
│               │   ├── syncer-0.0.8-K1_5.module.md5
│               │   ├── syncer-0.0.8-K1_5.module.sha1
│               │   ├── syncer-0.0.8-K1_5.module.sha256
│               │   ├── syncer-0.0.8-K1_5.module.sha512
│               │   ├── syncer-0.0.8-K1_5.pom
│               │   ├── syncer-0.0.8-K1_5.pom.md5
│               │   ├── syncer-0.0.8-K1_5.pom.sha1
│               │   ├── syncer-0.0.8-K1_5.pom.sha256
│               │   └── syncer-0.0.8-K1_5.pom.sha512
│               ├── maven-metadata.xml
│               ├── maven-metadata.xml.md5
│               ├── maven-metadata.xml.sha1
│               ├── maven-metadata.xml.sha256
│               └── maven-metadata.xml.sha512
├── settings-rubik.gradle
├── settings.gradle
├── test_app/
│   ├── build.gradle
│   ├── proguard-rules.pro
│   └── src/
│       ├── androidTest/
│       │   └── java/
│       │       └── com/
│       │           └── rubik/
│       │               └── test/
│       │                   ├── EventTest.kt
│       │                   ├── LaunchTest.kt
│       │                   ├── PathTest.kt
│       │                   ├── RouterBuilderTest.kt
│       │                   ├── RouterResultTest.kt
│       │                   ├── RouterTest.kt
│       │                   ├── RubikTest.kt
│       │                   ├── TouchTest.kt
│       │                   └── router/
│       │                       ├── TestAggregate.kt
│       │                       ├── TestSimpleAggregate.kt
│       │                       └── TestSimpleAggregateFactory.kt
│       ├── main/
│       │   ├── AndroidManifest.xml
│       │   ├── java/
│       │   │   └── com/
│       │   │       └── rubik/
│       │   │           └── test/
│       │   │               └── TestActivity.kt
│       │   └── res/
│       │       ├── drawable/
│       │       │   └── ic_launcher_background.xml
│       │       ├── drawable-v24/
│       │       │   └── ic_launcher_foreground.xml
│       │       ├── layout/
│       │       │   └── activity_test.xml
│       │       ├── mipmap-anydpi-v26/
│       │       │   ├── ic_launcher.xml
│       │       │   └── ic_launcher_round.xml
│       │       └── values/
│       │           ├── colors.xml
│       │           ├── strings.xml
│       │           └── styles.xml
│       └── test/
│           └── java/
│               └── com/
│                   └── rubik/
│                       └── test/
│                           └── ExampleUnitTest.kt
├── version-adapter.gradle
└── versions.gradle

================================================
FILE CONTENTS
================================================

================================================
FILE: LICENSE
================================================
                                 Apache License
                           Version 2.0, January 2004
                        http://www.apache.org/licenses/

   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

   1. Definitions.

      "License" shall mean the terms and conditions for use, reproduction,
      and distribution as defined by Sections 1 through 9 of this document.

      "Licensor" shall mean the copyright owner or entity authorized by
      the copyright owner that is granting the License.

      "Legal Entity" shall mean the union of the acting entity and all
      other entities that control, are controlled by, or are under common
      control with that entity. For the purposes of this definition,
      "control" means (i) the power, direct or indirect, to cause the
      direction or management of such entity, whether by contract or
      otherwise, or (ii) ownership of fifty percent (50%) or more of the
      outstanding shares, or (iii) beneficial ownership of such entity.

      "You" (or "Your") shall mean an individual or Legal Entity
      exercising permissions granted by this License.

      "Source" form shall mean the preferred form for making modifications,
      including but not limited to software source code, documentation
      source, and configuration files.

      "Object" form shall mean any form resulting from mechanical
      transformation or translation of a Source form, including but
      not limited to compiled object code, generated documentation,
      and conversions to other media types.

      "Work" shall mean the work of authorship, whether in Source or
      Object form, made available under the License, as indicated by a
      copyright notice that is included in or attached to the work
      (an example is provided in the Appendix below).

      "Derivative Works" shall mean any work, whether in Source or Object
      form, that is based on (or derived from) the Work and for which the
      editorial revisions, annotations, elaborations, or other modifications
      represent, as a whole, an original work of authorship. For the purposes
      of this License, Derivative Works shall not include works that remain
      separable from, or merely link (or bind by name) to the interfaces of,
      the Work and Derivative Works thereof.

      "Contribution" shall mean any work of authorship, including
      the original version of the Work and any modifications or additions
      to that Work or Derivative Works thereof, that is intentionally
      submitted to Licensor for inclusion in the Work by the copyright owner
      or by an individual or Legal Entity authorized to submit on behalf of
      the copyright owner. For the purposes of this definition, "submitted"
      means any form of electronic, verbal, or written communication sent
      to the Licensor or its representatives, including but not limited to
      communication on electronic mailing lists, source code control systems,
      and issue tracking systems that are managed by, or on behalf of, the
      Licensor for the purpose of discussing and improving the Work, but
      excluding communication that is conspicuously marked or otherwise
      designated in writing by the copyright owner as "Not a Contribution."

      "Contributor" shall mean Licensor and any individual or Legal Entity
      on behalf of whom a Contribution has been received by Licensor and
      subsequently incorporated within the Work.

   2. Grant of Copyright License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      copyright license to reproduce, prepare Derivative Works of,
      publicly display, publicly perform, sublicense, and distribute the
      Work and such Derivative Works in Source or Object form.

   3. Grant of Patent License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      (except as stated in this section) patent license to make, have made,
      use, offer to sell, sell, import, and otherwise transfer the Work,
      where such license applies only to those patent claims licensable
      by such Contributor that are necessarily infringed by their
      Contribution(s) alone or by combination of their Contribution(s)
      with the Work to which such Contribution(s) was submitted. If You
      institute patent litigation against any entity (including a
      cross-claim or counterclaim in a lawsuit) alleging that the Work
      or a Contribution incorporated within the Work constitutes direct
      or contributory patent infringement, then any patent licenses
      granted to You under this License for that Work shall terminate
      as of the date such litigation is filed.

   4. Redistribution. You may reproduce and distribute copies of the
      Work or Derivative Works thereof in any medium, with or without
      modifications, and in Source or Object form, provided that You
      meet the following conditions:

      (a) You must give any other recipients of the Work or
          Derivative Works a copy of this License; and

      (b) You must cause any modified files to carry prominent notices
          stating that You changed the files; and

      (c) You must retain, in the Source form of any Derivative Works
          that You distribute, all copyright, patent, trademark, and
          attribution notices from the Source form of the Work,
          excluding those notices that do not pertain to any part of
          the Derivative Works; and

      (d) If the Work includes a "NOTICE" text file as part of its
          distribution, then any Derivative Works that You distribute must
          include a readable copy of the attribution notices contained
          within such NOTICE file, excluding those notices that do not
          pertain to any part of the Derivative Works, in at least one
          of the following places: within a NOTICE text file distributed
          as part of the Derivative Works; within the Source form or
          documentation, if provided along with the Derivative Works; or,
          within a display generated by the Derivative Works, if and
          wherever such third-party notices normally appear. The contents
          of the NOTICE file are for informational purposes only and
          do not modify the License. You may add Your own attribution
          notices within Derivative Works that You distribute, alongside
          or as an addendum to the NOTICE text from the Work, provided
          that such additional attribution notices cannot be construed
          as modifying the License.

      You may add Your own copyright statement to Your modifications and
      may provide additional or different license terms and conditions
      for use, reproduction, or distribution of Your modifications, or
      for any such Derivative Works as a whole, provided Your use,
      reproduction, and distribution of the Work otherwise complies with
      the conditions stated in this License.

   5. Submission of Contributions. Unless You explicitly state otherwise,
      any Contribution intentionally submitted for inclusion in the Work
      by You to the Licensor shall be under the terms and conditions of
      this License, without any additional terms or conditions.
      Notwithstanding the above, nothing herein shall supersede or modify
      the terms of any separate license agreement you may have executed
      with Licensor regarding such Contributions.

   6. Trademarks. This License does not grant permission to use the trade
      names, trademarks, service marks, or product names of the Licensor,
      except as required for reasonable and customary use in describing the
      origin of the Work and reproducing the content of the NOTICE file.

   7. Disclaimer of Warranty. Unless required by applicable law or
      agreed to in writing, Licensor provides the Work (and each
      Contributor provides its Contributions) on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
      implied, including, without limitation, any warranties or conditions
      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
      PARTICULAR PURPOSE. You are solely responsible for determining the
      appropriateness of using or redistributing the Work and assume any
      risks associated with Your exercise of permissions under this License.

   8. Limitation of Liability. In no event and under no legal theory,
      whether in tort (including negligence), contract, or otherwise,
      unless required by applicable law (such as deliberate and grossly
      negligent acts) or agreed to in writing, shall any Contributor be
      liable to You for damages, including any direct, indirect, special,
      incidental, or consequential damages of any character arising as a
      result of this License or out of the use or inability to use the
      Work (including but not limited to damages for loss of goodwill,
      work stoppage, computer failure or malfunction, or any and all
      other commercial damages or losses), even if such Contributor
      has been advised of the possibility of such damages.

   9. Accepting Warranty or Additional Liability. While redistributing
      the Work or Derivative Works thereof, You may choose to offer,
      and charge a fee for, acceptance of support, warranty, indemnity,
      or other liability obligations and/or rights consistent with this
      License. However, in accepting such obligations, You may act only
      on Your own behalf and on Your sole responsibility, not on behalf
      of any other Contributor, and only if You agree to indemnify,
      defend, and hold each Contributor harmless for any liability
      incurred by, or claims asserted against, such Contributor by reason
      of your accepting any such warranty or additional liability.

   END OF TERMS AND CONDITIONS

   APPENDIX: How to apply the Apache License to your work.

      To apply the Apache License to your work, attach the following
      boilerplate notice, with the fields enclosed by brackets "[]"
      replaced with your own identifying information. (Don't include
      the brackets!)  The text should be enclosed in the appropriate
      comment syntax for the file format. We also recommend that a
      file or class name and description of purpose be included on the
      same "printed page" as the copyright notice for easier
      identification within third-party archives.

   Copyright [yyyy] [name of copyright owner]

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.


================================================
FILE: README.md
================================================

<div align="center">
  <p> <img width="600" src="https://user-images.githubusercontent.com/7745189/174275733-ff1ec56e-82ea-4c3b-86de-b2b07d258842.jpeg"> </p>

![license](https://img.shields.io/github/license/baidu/rubik.svg)
![platform](https://img.shields.io/badge/platform-Android-red)
![language](https://img.shields.io/github/languages/top/baidu/rubik)
![last](https://img.shields.io/github/last-commit/baidu/rubik.svg)
![release](https://img.shields.io/github/v/release/baidu/rubik?display_name=release)

</div>

<div align="center">
<a href="./README_en.md">English Readme</a>
</div>

# Rubik
Rubik是一套解决Android平台组件化的综合方案,提供gradle project之间的路由通讯能力,以及对gradle project的组件定义、版本控制、maven发布、aar/jar与源码之间的切换以及组件的自由组合等能力。

Rubik由两部分组成:
* Rubik Router :提供组件之间的低耦合通讯能力,即Rubik的"函数路由",与一般的页面路由不同,Rubik Router允许把Uri及参数,导航到工程内部,任意的一个公开的JVM语言(Java/Kotlin)函数的执行上,以便于更灵活的进行gradle project之间不基于代码调用的通讯。
* Rubik 工具链 :提供组件上下文的定义、版本控制、maven发布、aar/jar与源码之间的切换等能力,包括4个gradle plugin:
    + rubik:
        - 提供全局定义组件的能力,并根据全局定义自动启用rubik-context、rubik-shell等插件
    + rubik-context:
        - 提供task,自动生成接口中间代码,并把中间代码打包成context.jar ,按版本号发布到maven
        - 提供task,把业务代码按flavor、版本号编译成aar (包括代码、资源、内置SDK)发布到maven
        - 通过全局定义的组件,为组件所在子工程自动添加其他组件的context.jar的依赖
    + rubik-shell:
        - 给壳工程提供筛选组件能力,根据flavor、版本号筛选要打包进apk的业务组件
        - 提供组件的源码工程和aar切换的能力
    + rubik-test:
        - 给工程提供单元测试环境

## 快速开始
### 1. 工程创建和组件声明:
&ensp;&ensp;(1) 创建或使用已有的一个或多个android library module,作为"组件工程"(如demo代码中的demo_component_detail、demo_component_home等),用于开发真正的业务逻辑。

&ensp;&ensp;(2) 在最外层工程(gradle root project)的build.gradle或gradle.properties文件中配置Rubik版本号等初始化参数,并在最外层工程中启用rubik插件:
```groovy
ext {
    rubik_kapt_version = "com.rubik:kapt:1.9.1.1-K1_5"   
    rubik_router_version = "com.rubik:router:1.9.1.1-K1_5"   
    rubik_plugins_version = "com.rubik:plugins:1.9.1.1-AGBT4-K1_5"  
} 

apply plugin: 'rubik' // 启用rubik插件
```

&ensp;&ensp;(3) 在最外层工程的build.gradle文件或同级目录下的rubik-*.gradle文件中,配置组件信息:
```groovy
rubik {
    component { // 第一个组件
        uri "app://com.myapp.home"  // 组件的Uri
        touching {    // 组件需要依赖的其他组件
            uri ("app://com.myapp.detail" ) { 
                version "0.1.1"  // 依赖其他组件的版本
            }
            uri( … ) 
        }
        source {    // 定义默认来源,如不需切换源码和aar,可以只声明project或maven
            project (":demo_component_home") 
        }
    }
    component { … }  //继续配置第二个组件
} 
```

### 2. 让组件之间互相通信:
&ensp;&ensp;(1). 在接口提供者工程内,通过注解定义路由路径,作为组件暴露给其他组件的通信接口:

&ensp;&ensp;&ensp;&ensp;通过RFunction注解声明函数路由:
```kotlin
@RFunction(path = "account/user") 
fun getUser(id : Int, name : String) : User? { 
    …
}
```

&ensp;&ensp;&ensp;&ensp;通过RPage注解声明页面路由:
```kotlin
@RPage(path = "page/main") 
class HomeActivity : AppCompatActivity() {
    … 
}
```
&ensp;&ensp;(2). 执行接口提供者工程对应的"publishRubikXxxRContextLib"任务,发布组件上下文到云端或本地maven仓库。

&ensp;&ensp;(3). 执行接口提供者工程对应的"publishRubikXxxRComponent"任务,发布组件aar到云端或本地maven仓库。

&ensp;&ensp;(4). 在接口调用者工程内,调用上述接口提供者所提供的接口,可以选择两种方式:

&ensp;&ensp;&ensp;&ensp;通过Kotlin DSL:
```kotlin
navigate {
    uri = "app://com.myapp.detail/account/user"  // 请求的uri
    query { // 请求的参数
        "id" with 400
        "name" with "CuiVincent" 
    }
    result<User?> { user -> 
    // 通过泛型指定接收数据类型,多次异步返回时,可以用多个result接收
        …
    }
} 
```

&ensp;&ensp;&ensp;&ensp;通过自动生成的镜像函数:
```kotlin
DetailContext.Account.user(400, "CuiVincent" ) { user ->
    … // 自动生成的镜像函数的参数类型、返回值类型都是明确的,比DSL方式更具有约束力
}
```

### 3. 筛选要打包的组件
&ensp;&ensp;(1). 创建或使用已有的android application project,作为"壳工程"(如demo代码中的demo_root_app),用于把组件组装并编译成Apk。

&ensp;&ensp;(2). 在"壳工程"的的build.gradle文件或同级目录下的rubik-*.gradle文件中,指定"壳工程"最终要将哪些组件,以哪种方式引入,并打包到最终的编译产物之中:
```groovy
rubik {	
    packing {
        projectMode { // projectMode,通过源码工程的方式引入组件
            uri ("app://com.myapp.home")
            uri ("app://com.myapp.*") // 支持通过*匹配任意字符
        }
        mavenMode { // mavenMode,通过maven上的aar的方式引入组件
            uri ("app://com.myapp.detail") {
                version "0.2.0" 
            }
        }
    }
} 
```
## 测试
* 通过rubik-test插件,给当前工程的androidTest variant添加全部可pick组件的context.jar依赖,便于写测试用例。
```kotlin
@RunWith(AndroidJUnit4::class)
class RouterTestCase {
    @Before
    fun init() {
        Rubik.init()
    } // 初始化Rubik
    @Test
    fun usePerview() {
        PerviewContext.preViewVideo(path) { success ->
            log("preViewVideo success:${success}")
        } // 测试用例
    }
    … // 继续写测试用例
 }

```

## 如何贡献
请用Kotlin语言编写,所有注明动机的合理改动提交都会被接收。


================================================
FILE: README_en.md
================================================

<div align="center">
  <p> <img width="600" src="https://user-images.githubusercontent.com/7745189/174275733-ff1ec56e-82ea-4c3b-86de-b2b07d258842.jpeg"> </p>

![license](https://img.shields.io/github/license/baidu/rubik.svg)
![platform](https://img.shields.io/badge/platform-Android-red)
![language](https://img.shields.io/github/languages/top/baidu/rubik)
![last](https://img.shields.io/github/last-commit/baidu/rubik.svg)
![release](https://img.shields.io/github/v/release/baidu/rubik?display_name=release)

</div>

<div align="center">
<a href="./README.md">中文 Readme</a>
</div>

# Rubik
Rubik is a comprehensive solution for Android platform componentized development. It provides the ability of routing communication between Gradle projects, as well as the ability of component definition, version control, Maven publishing, AAR/JAR and source code switching, and free composition of components.

Rubik consists of two parts:
* Rubik Router :Provide low coupling communication between components. The function level routing capability of Rubik. Unlike normal page router, Rubik Router allows the Uri and 
  parameters to be navigated to any execution of a public JVM language (Java/Kotlin) function . It allows for more flexible communication between Gradle Projects without code calls.
* Rubik Tools link :Provides component context definition, versioning, Maven publishing, AAR/JAR and source switching capabilities, including 4 Gradle Plugins:
    + rubik:
        - Provides the ability to define components globally, and automatically enables plugins such as rubik-context and rubik-shell based on the global definition
    + rubik-context:
        - Provide Task, automatically generate the intermediate code such as interface, and package the intermediate code into context.jar, release to Maven according to the version.
        - Provides tasks to compile business codes into AAR (including code, resources, and built-in SDK) based on flavor and version. publish them to Maven.
        - Automatically adds dependencies on other context.jars to subprojects where components reside
    + rubik-shell:
        - Provides the ability to picking components, picking components to be packaged into APK based on flavor and version.
        - Provide component source code and AAR switching ability.
    + rubik-test:
        - Provide unit testing environment for projects

## Quick start
### 1. Project creation and component declaration:
&ensp;&ensp;(1) Create or use one or more existing Android Library Modules as "component projects" (demo_component_detail, DEMO_component_home, etc. in Demo code) for developing real business logic.

&ensp;&ensp;(2) Set Rubik initialization parameters such as the Rubik version in the build.gradle or gradle.properties file of the gradle root project. and enable the Rubik plugin in the gradle root project:
```groovy
ext {
    rubik_kapt_version = "com.rubik:kapt:1.9.1.1-K1_5"   
    rubik_router_version = "com.rubik:router:1.9.1.1-K1_5"   
    rubik_plugins_version = "com.rubik:plugins:1.9.1.1-AGBT4-K1_5"  
} 

apply plugin: 'rubik' // enable the Rubik plugin
```

&ensp;&ensp;(3) In the build.gradle file of the outermost project ,or rubik-*.gradle file in its sibling directory, configure the component information:
```groovy
rubik {
    component { // The first component
        uri "app://com.myapp.home"  //   The Uri of component
        touching {    // The component needs to depend on other components
            uri ("app://com.myapp.detail" ) { 
                version "0.1.1"  // Versions that depend on other components
            }
            uri( … ) 
        }
        source {    // Define the default source.
            project (":demo_component_home") 
        }
    }
    component { … }  // Proceed to configure the second component
} 
```

### 2. Let components communicating to each other.:
&ensp;&ensp;(1). In the interface provider project, defined  routing path by annotations, as a communication interface that a component exposes to other components:

&ensp;&ensp;&ensp;&ensp;Declare function route with the RFunction annotation:
```kotlin
@RFunction(path = "account/user") 
fun getUser(id : Int, name : String) : User? { 
    …
}
```

&ensp;&ensp;&ensp;&ensp;Declare page route with the RPage annotation:
```kotlin
@RPage(path = "page/main") 
class HomeActivity : AppCompatActivity() {
    … 
}
```
&ensp;&ensp;(2). Run "publishRubikXxxRContextLib" task in the interface provider project, release the component context to the cloud or local maven repository.

&ensp;&ensp;(3). Run "publishRubikXxxRComponent" task in the interface provider project, release the component aar to the cloud or local maven repository.

&ensp;&ensp;(4). In the interface caller project, there are two ways to call the interface provided by the above interface provider:

&ensp;&ensp;&ensp;&ensp;Via Kotlin DSL:
```kotlin
navigate {
    uri = "app://com.myapp.detail/account/user"  // The request uri
    query { // Parameters of the request
        "id" with 400
        "name" with "CuiVincent" 
    }
    result<User?> { user -> 
    // The received data type is specified by generics, and multiple asynchronous returns can be received as multiple results
        …
    }
} 
```

&ensp;&ensp;&ensp;&ensp;Via automatically generated image functions:
```kotlin
DetailContext.Account.user(400, "CuiVincent" ) { user ->
    … // The parameter type and return value type of the automatically generated image function are clear, which is more binding than the DSL
}
```

### 3. Picking components to package
&ensp;&ensp;(1). Create or use an existing Android Application Project as a "shell project" (demo_root_app in demo code) to assemble and compile components to Apk.

&ensp;&ensp;(2).  In the build.gradle file of the shell project or rubik-*.gradle file in its sibling directory, specify which components the shell project will eventually bring in and how they will be packaged into the final build product:
```groovy
rubik {	
    packing {
        projectMode { // projectMode,Introduce components through source code project
            uri ("app://com.myapp.home")
            uri ("app://com.myapp.*") // Support to match any character through *
        }
        mavenMode { // mavenMode,Introduce components through AAR on maven
            uri ("app://com.myapp.detail") {
                version "0.2.0" 
            }
        }
    }
} 
```
## Test
* Through the rubik-test plugin, add all the context.jar dependencies of picked components to androidTest Variant of the current project, which is easy to write test cases.
```kotlin
@RunWith(AndroidJUnit4::class)
class RouterTestCase {
    @Before
    fun init() {
        Rubik.init()
    } // Initialize Rubik
    @Test
    fun usePerview() {
        PerviewContext.preViewVideo(path) { success ->
            log("preViewVideo success:${success}")
        } // Test case
    }
    … // Continue to write test cases
}

```

## How to contribute
Please write in Kotlin, and all change commit with reasonable motivation will be accepted.



================================================
FILE: build.gradle
================================================
// Top-level build file where you can add configuration options common to all sub-projects/modules.
apply plugin: 'rubik'

buildscript {
    ext {
        rubik_tmp_lib_dir = uri('./rubik_libs_repository').path // default:./rubik_libs
//        rubik_tmp_lib_dir_mode = false  // default: false

        rubik_maven_repository = "http://my.maven/repository/releases/"
        rubik_maven_username = "admin" // simple
        rubik_maven_password = "123" // simple
        rubik_maven_local_repository = uri('./rubik_maven_local_repository').path

//        rubik_use_reset_compiler = false // default: true

//        rubik_publish_context_lib_source = true // default: true

//        rubik_kapt_version = "com.rubik:kapt:xxx"   //  @see version.gradle in this demo
//        rubik_router_version = "com.rubik:router:xxx"   //  @see version.gradle in this demo
//        rubik_plugins_version = "com.rubik:plugins:xxx"   //  @see version.gradle in this demo

//        rubik_kapt_source_folder = "generated/source/kaptKotlin"

//        rubik_clean_before_task = false  // default: true

        rubik_auto_generate_aggregate = true   // default: false

        rubik_generate_aggregate_in_build_dir = false  // default: true
//                           only usable when rubik_auto_generate_aggregate = true

        rubik_aggregate_kdoc_add_user_add_time = false   // default: true

        rubik_auto_generate_component_id = true  // default: false

        rubik_generate_router_context = true   // default: false

//        rubik_extension_name = "rk"

//        rubik_auto_apply_shell_plugin = false   // default: true

        rubik_config_file_dirs = [uri('./demo').path]

//        rubik_github_maven_repository = "https://maven.pkg.github.com/baidu/rubik/"
//        rubik_github_maven_username = "myname"
//        rubik_github_maven_password = "123"

//        rubik_enable_check_router_version = true // default: false

//        rubik_enable_check_context_version = true // default: false

//        rubik_check_context_lib_tasks_state = false // default: true

//        rubik_context_packing_compile_only = false // default: true

//        rubik_auto_fill_flavor = false // default: true

//        rubik_strict_touching_and_packing = false // default: true

        rubik_except_component_build_types = ['debug']

        rubik_except_component_flavors = ['company2']

        rubik_remove_project_when_publish_context_libs = false // default: true

        rubik_publication_record_files_dir = uri('./rubik_libs_repository').path

//        rubik_auto_update_publication_record = false //  default: true
//
//        rubik_auto_use_publication_record = false //  default: true

        rubik_publication_record_history_max_size = 15 // default: 10

        rubik_on_route_method_max_size = 15 // default: 100

//        rubik_sync_code_enable = false  //  default: true
//
//        rubik_auto_generate_settings = false  //  default: true

        rubik_log_level = 1 // 1:all logs , 2:default , 3:least logs

        rubik_write_log_to_file = false

//        rubik_ignore_value_annotations = ["com.google.gson.annotations.SerializedName"]

    }

    apply from: 'version-adapter.gradle'
    apply from: 'versions.gradle'

    addRepos(repositories)

    dependencies {
        classpath "com.android.tools.build:gradle:$agbt_version"
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"

        classpath rubik_plugins_version
    }
}

allprojects {
    addRepos(repositories)
}

task clean(type: Delete) {
    delete rootProject.buildDir
}


================================================
FILE: demo/demo_component_detail/build.gradle
================================================
apply plugin: 'com.android.library'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'

android {
    compileSdkVersion 30
    buildToolsVersion "30.0.0"

    defaultConfig {
        minSdkVersion 23
        targetSdkVersion 30
        versionCode 1
        versionName "1.0"

        consumerProguardFiles 'consumer-rules.pro'
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    flavorDimensions "company", "channel"

    productFlavors {
        company1 { dimension "company" }
        company2 { dimension "company" }
        channel1 { dimension "channel" }
        channel2 { dimension "channel" }
    }

}

androidExtensions {
    experimental = true
}

rubik {
    aggregateSet uri('./src/main/ra').path
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
    implementation 'androidx.appcompat:appcompat:1.0.2'
    implementation 'androidx.core:core-ktx:1.0.2'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    implementation 'com.google.code.gson:gson:2.8.5'

//    implementation project(':demo:demo_until_library_a')
}

================================================
FILE: demo/demo_component_detail/consumer-rules.pro
================================================


================================================
FILE: demo/demo_component_detail/proguard-rules.pro
================================================
# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile


================================================
FILE: demo/demo_component_detail/src/main/AndroidManifest.xml
================================================
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.mars.component.detail">
    <application android:label="@string/app_name">
        <activity android:name=".ui.FirstPageActivity"/>
        <activity android:name=".ui.SecondPageActivity"/>
    </application>
</manifest>


================================================
FILE: demo/demo_component_detail/src/main/java/com/mars/component/detail/api/AipsInCompanion.kt
================================================
package com.mars.component.detail.api

import com.rubik.annotations.route.RRoute

class AipsInCompanion {
    companion object DetailCompanion {
        // Companion方法
        @RRoute(path = "doSthCompanion")
        fun doSthCompanion(i: Int, j: String, k: Long): String {
            println(" AP DBG DETAIL  doSthCompanion begin !!! i:$i j:$j k:$k")
            return "result = i:$i j:$j k:$k"
        }

        // Companion属性
        @RRoute(path = "property/companion")
        var propertyCompanion: String = "bnm3"

        // Companion高阶函数
        @RRoute(path = "doSthHOFCompanion")
        val doSthHOFCompanion: (Int) -> Int = {
            println(" AP DBG DETAIL  doSthHOFCompanion begin !!!")
            it + 102
        }
    }
}


================================================
FILE: demo/demo_component_detail/src/main/java/com/mars/component/detail/api/AipsInTop.kt
================================================
package com.mars.component.detail.api

import com.mars.component.detail.value.TestDataBean
import com.rubik.annotations.route.RRoute


//顶层方法
@RRoute(path = "doSthTop")
fun doSthTop(
    ints: Array<Int>,
    li: List<Int?>,
    strings: Array<String>,
    ls: List<String>,
    beans: Array<TestDataBean>,
    lb: List<TestDataBean>
): List<TestDataBean> {
    println(" AP DBG DETAIL  doSthTop begin beans:${ints[0]} li:${li[0]} ls:${ls[0]} strings:${strings[0]} beans:${beans[0]} lb:${lb[0]} !!!")
    return lb
}

//顶层高阶函数
@RRoute(path = "doSthHOFTop")
val doSthHOFTop: (Unit) -> Unit = {
    println(" AP DBG DETAIL  doSthHOFTop begin !!!")
}

//顶层属性
@RRoute(path = "property/top")
var propertyTop: String = "bnm"


================================================
FILE: demo/demo_component_detail/src/main/java/com/mars/component/detail/api/ApiSerialization.kt
================================================
package com.mars.component.detail.api

import com.mars.component.detail.value.TestParcelizeBean
import com.mars.component.detail.value.TestSerializableBean
import com.rubik.annotations.route.function.RFunction

class ApiSerialization {
    @RFunction(path = "api/serialization/parcel-bean")
    fun doSthParcelBean(parcelBean: TestParcelizeBean?): TestParcelizeBean {
        println(" AP DBG DETAIL  doSthParcelBean begin parcelBean:${parcelBean?.d2}!!!")
        return TestParcelizeBean(430,"from detail!")
    }

    @RFunction(path = "api/serialization/parcel-array")
    fun doSthParcelArray(parcels: Array<TestParcelizeBean>): Array<TestParcelizeBean> {
        println(" AP DBG DETAIL  doSthParcelArray begin parcels:${parcels.size}!!!")
        println(" AP DBG DETAIL  doSthParcelArray begin parcels 0 :${parcels[0].d2}!!!")
        return arrayOf(
            TestParcelizeBean(430, "from detail 11!"),
            TestParcelizeBean(430, "from detail 22!"),
            TestParcelizeBean(430, "from detail 33!")
        )
    }

    @RFunction(path = "api/serialization/parcel-list")
    fun doSthParcelList(parcels: List<TestParcelizeBean>): List<TestParcelizeBean> {
        println(" AP DBG DETAIL  doSthParcelList begin parcels:${parcels.size}!!!")
        println(" AP DBG DETAIL  doSthParcelList begin parcels 0 :${parcels[0].d2}!!!")
        return listOf(
            TestParcelizeBean(430, "from detail 22!"),
            TestParcelizeBean(430, "from detail 33!"),
            TestParcelizeBean(430, "from detail 44!")
        )
    }


    @RFunction(path = "api/serialization/Serializable-bean")
    fun doSthSerializableBean(serializableBean: TestSerializableBean): TestSerializableBean {
        println(" AP DBG DETAIL  doSthSerializableBean begin serializableBean:${serializableBean.d2}!!!!!!")
        return TestSerializableBean(530,"from detail!")
    }
}

================================================
FILE: demo/demo_component_detail/src/main/java/com/mars/component/detail/api/Apis.kt
================================================
package com.mars.component.detail.api

import android.app.Activity
import android.content.Context
import android.view.View
import androidx.lifecycle.LifecycleOwner
import androidx.lifecycle.ViewModelStoreOwner
import com.mars.component.detail.value.TestDataBean
import com.mars.component.detail.value.TestListBean
import com.mars.component.detail.value.mapping.TestDataMappingBean
import com.mars.component.detail.value.mapping.TestNestDataMappingBean
import com.rubik.annotations.route.RRoute

typealias AliasHof =  (String?) -> String?
typealias AigcChatHybridActionCreator = (
    activity: Activity,
    owner: ViewModelStoreOwner,
    lifecycleOwner: LifecycleOwner,
    hybridActionBuilder: LifecycleOwner?,
    baseView: LifecycleOwner?
) -> LifecycleOwner?

class Apis {
    // 无参无返回值
    @RRoute(path = "do-sth")
    fun doSth() {
        println(" AP DBG DETAIL  doSth  begin !!!")
    }

    // 高阶函数
    @RRoute(path = "do-sth-hof", forResult = true, version = "2.0")
    val doSthHOF: (Int, String, TestDataBean) -> Int = { a, b, c ->
        println(" AP DBG DETAIL  doSthHOF begin b:$b c:$c!!!")
        a + 102
    }

    // 属性
    @RRoute(path = "property/property", version = "1.0")
    val property: String = "vbn"


    // 返回View
    @RRoute(path = "view/get")
    fun getView(context: Context): View? {
        println(" AP DBG DETAIL  getView begin !!!")
        return View(context)
    }

    // uri传递参数
    @RRoute(path = "sth/{id}/a-{name}?code1={code1}&code2={code2}")
    fun getSth(id: String, name: String, code1: String, code2: String): String {
        println(" AP DBG DETAIL  getSth begin id:$id name:$name code1:$code1 code2:$code2 !!!")
        return "$id => $name => $code1 => $code2"
    }

    // navigationOnly
    @RRoute(path = "sth-navigation-only/{uri}", navigationOnly = true)
    fun getSthNavigationOnly(uri: String): String {
        println(" AP DBG DETAIL  getSthNavigationOnly begin uri:$uri  !!!")
        return "$uri  !"
    }

    // 变长参数
    @RRoute(path = "doSthVararg")
    fun doSthVararg(no: Int, vararg varargString: String) {
        println("  AP DBG DETAIL  doSthVararg begin strings:${varargString.getOrNull(0)}!!!")
    }


    @RRoute(path = "doSthVarargHof")
    fun doSthVarargHof(no: Int, vararg varargString: AigcChatHybridActionCreator) {
        println("  AP DBG DETAIL  doSthVarargHof begin strings:${varargString.getOrNull(0)}!!!")
    }

    // Bean参数返回值
    @RRoute(path = "doSthBean")
    fun doSthBean(a1: TestDataBean): TestListBean {
        println(" AP DBG DETAIL  doSthBean begin a1:${a1.d1}!!!")
        return TestListBean(55)
    }

//    // BeanList参数返回值
//    @RRoute(context = "com.mars.rubik-test.detail", path = "doSthBean")
//    fun doSthBeanList(a1: List<TestDataNotRValueBean>?): List<TestDataNotRValueBean>? {
//        println(" AP DBG DETAIL  doSthBean begin a1:${a1?.getOrNull(0)}!!!")
//        return listOf(TestDataNotRValueBean(66, ""))
//    }


    // uri冲突
//    @RRoute(path = "doSthUriCrash")
//    fun doSthUriCrash1(name: String, code: String) {
//    }
//
//    @RRoute(path = "doSthUriCrash")
//    fun doSthUriCrash2(name: String, code: String, version: String) {
//    }

    @RRoute(path = "do-sth-uri-crash")
    fun doSthUriCrash3(name: String, code: String) {
    }

    @RRoute(path = "do-sth-uri-crash")
    fun doSthUriCrash4(name: String, code: String, version: String) {
    }

//    @RRoute(path = "do-sth-uri-crash")
//    fun doSthUriCrash5(name: String, code: String, version: String) {
//    }

    // Bean mapping参数返回值
    @RRoute(path = "doSthMappingBean")
    fun doSthMappingBean(a1: TestDataMappingBean): TestDataMappingBean {
        println(" AP DBG DETAIL  doSthMappingBean  a1:${a1.d1}!!!")
        return TestDataMappingBean(655, "sdfa")
    }

    // Bean mapping参数返回值
    @RRoute(path = "doSthTestNestDataMappingBean")
    fun doSthTestNestDataMappingBean(bean: TestNestDataMappingBean): TestNestDataMappingBean {
        println(" AP DBG DETAIL  doSthTestNestDataMappingBean ${bean.d1?.d2} ${bean.d2?.d2} ${bean.d3?.d2} ${bean.d4} ${bean.d5}!!!")
        return TestNestDataMappingBean(
            TestDataBean(23, "11sdsd"),
            TestDataMappingBean(55, "11sdsd"),
            TestNestDataMappingBean(
                TestDataBean(4423, "22sdsd"),
                TestDataMappingBean(4455, "22sdsd"),
                null,
                listOf(TestDataBean(4423, "22sdsd")),
                listOf(TestDataMappingBean(4455, "22sdsd"))
            ),
            listOf(TestDataBean(23, "11sdsd")),
            listOf(TestDataMappingBean(55, "11sdsd"))
        )
    }

}


================================================
FILE: demo/demo_component_detail/src/main/java/com/mars/component/detail/api/ApisAsyncReturn.kt
================================================
package com.mars.component.detail.api

import com.mars.component.detail.value.TestDataBean
import com.rubik.annotations.route.RResult
import com.rubik.annotations.route.RRoute

class ApisAsyncReturn {

    // 高阶函数异步返回
    @RRoute(path = "doSthAsyncHOF")
    fun doSthAsyncHOF(@RResult hof: (String, TestDataBean) -> Unit) {
        println(" AP DBG DETAIL  doSthAsyncHOF begin !!!")
        hof("dfg", TestDataBean(101, "xxx"))
    }

    // 高阶函数异步返回
    @RRoute(path = "doSthAsyncHOFNullable")
    fun doSthAsyncHOFNullable(
        @RResult hofx1res: ((String, TestDataBean) -> Unit)?,
        hof2xx: ((String, TestDataBean) -> Unit)?,
//        @RResult hofx3res: ((String, Int, TestDataBean) -> TestDataBean)?,
        hof4xx: ((String, Int, TestDataBean) -> TestDataBean?)?
    ) {
        println(" AP DBG DETAIL  doSthAsyncHOFNullable begin !!!")
        hofx1res?.invoke("dfg", TestDataBean(101, "xxx"))
    }

    @RRoute(path = "doSthAsync2HOF")
    fun doSthAsyncHOF(
        @RResult hof: (String, Int) -> Unit,
        @RResult hof2: (String, Int) -> Unit
    ) {
        println(" AP DBG DETAIL  doSthAsyncHOF begin !!!")
        hof("dfg", 22)
        hof2("dfg2", 222)
    }

    // 接口异步返回
    @RRoute(path = "doSthAsyncOpen")
    fun doSthAsyncOpen(uri: String, @RResult results: Callback?) {
        println(" AP DBG DETAIL  doSthAsyncOpen begin uri:$uri !!!")
        results?.onCall("zxc", 33)
    }

    @RRoute(path = "do-sth-async-interface")
    fun doSthAsyncInterface(@RResult onResult: Callbackable) {
        println(" AP DBG DETAIL  doSthAsyncInterface begin !!!")
        onResult.onCall("zxc", 33)
    }

    @RRoute(path = "do-sth-async-3-interface")
    fun doSthAsync2Interface(
        @RResult onResult: Callbackable?,
        @RResult onResult2: Callbackable,
        @RResult onResult3: BeanCallbackable
//        @RResult onResult4: BeanReturnCallbackable,
//        func5: BeanReturnCallbackable
    ) {
        println(" AP DBG DETAIL  doSthAsyncInterface begin !!!")
        onResult?.onCall("zxc", 33)
        onResult2.onCall("zxc2", 332)
        onResult3.onCall(TestDataBean(0, "abd"))
    }

    @RRoute(path = "do-sth-async-interface-multi-func")
    fun doSthAsyncInterfaceMultiFunc(@RResult onResult: MultiCallback) {
        println(" AP DBG DETAIL  doSthAsyncInterface begin !!!")
        onResult.start("start1", 55)
        onResult.data(TestDataBean(1, "dfg"))
        onResult.stop("stop2", 66)
    }
}

open class Callback {
    open fun onCallNone(v1: String?, v2: Int) {
        // nothing
    }

    @RResult
    open fun onCall(v1: String?, v2: Int) {
        // nothing
    }
}

interface Callbackable {
    fun onCall(v1: String?, v2: Int)
}

interface BeanCallbackable {
    fun onCall(v: TestDataBean?)
}

interface MultiCallback {
    @RResult
    fun start(v1: String?, v2: Int)

    @RResult
    fun data(v: TestDataBean?)

    @RResult
    fun stop(v1: String?, v2: Int)
}

interface BeanReturnCallbackable {
    fun onCall(v: TestDataBean?):TestDataBean
}

================================================
FILE: demo/demo_component_detail/src/main/java/com/mars/component/detail/api/ApisBadCase.kt
================================================
package com.mars.component.detail.api

import android.content.Context
import androidx.lifecycle.LiveData
import com.rubik.annotations.route.RResult
import com.rubik.annotations.route.RRoute

class ApisBadCase {

    @RRoute(path = "getFilesMeta")
    fun getFilesMeta(context: Context?, path: String?, @RResult callback: GetFileMetaCallback) {
    }

    @RRoute(path = "enterprise/business/allocateTicket")
    fun allocateTicket(context: Context, shareId: Long, count: Int, packetType: Int): LiveData<List<String>>? {
        return null
    }

//    @RRoute(path = "get/TestClassB")
//    fun allocateTicket( count: Int): LiveData<TestClassB>? {
//        return null
//    }

//    @RFunction(path = "shareObject/createGroupLinkShareController")
//    fun createGroupLinkShareController(
//        activity: Activity?,
//        shareOption: String?,
//        image: ByteArray?,
//        handler: Handler?,
//        type: String?
//    ): GetFileMetaCallback? {
//        return null
//    }
//
//    @RFunction(path = "shareObject/createGroupLinkShareController")
//    fun createGroupLinkShareController(
//        activity: Activity?,
//        shareOption: String?,
//        handler: Handler?,
//        type: String?,
//        @RResult shareHelper: GetFileMetaCallback?
//    ): GetFileMetaCallback? {
//        return null
//    }
}

interface GetFileMetaCallback {
    /**
     * 文件恢复结果通知
     */
    @RResult
    fun onResult(fsid: Long, path: String?)
}

================================================
FILE: demo/demo_component_detail/src/main/java/com/mars/component/detail/api/ApisBigData.kt
================================================
package com.mars.component.detail.api

import com.mars.component.detail.value.TestDataBean
import com.mars.component.detail.value.TestParcelizeBean
import com.rubik.annotations.route.function.RFunction

class ApisBigData {

    private val testArraySize = 200001
    private val testListSize = 200001

    @RFunction(path = "api/bigdata/json-array")
    fun getBigJsonArray(array: Array<TestDataBean>): Array<TestDataBean> {
        println(" AP DBG DETAIL  getBigJsonArray begin array:${array.size}!!!")
        return Array(testArraySize) {
            TestDataBean(it, "from detail! array:$it")
        }
    }

    @RFunction(path = "api/bigdata/parcel-array")
    fun getBigParcelArray(array: Array<TestParcelizeBean>): Array<TestParcelizeBean> {
        println("  AP DBG DETAIL  getBigJsonArray begin array:${array.size}!!!")
        return  Array(testArraySize) {
            TestParcelizeBean(it, "from detail! array:$it")
        }
    }

    @RFunction(path = "api/bigdata/lib-array")
    fun getBigLibArray(array: Array<TestDataBean>): Array<TestDataBean> {
        println(" AP DBG DETAIL  getBigJsonArray begin array:${array.size}!!!")
        return Array(testArraySize) {
            TestDataBean(it, "from detail! array:$it")
        } // TestLibDataBean
    }

    @RFunction(path = "api/bigdata/json-list")
    fun getBigJsonList(list: List<TestDataBean>): List<TestDataBean> {
        println(" AP DBG DETAIL  getBigJsonList begin list:${list.size}!!!")
        return MutableList(testListSize){
            TestDataBean(it, "from detail! list:$it")
        }
    }

    @RFunction(path = "api/bigdata/parcel-list")
    fun getBigParcelList(list: List<TestParcelizeBean>): List<TestParcelizeBean> {
        println(" AP DBG DETAIL  getBigJsonList begin list:${list.size}!!!")
        return MutableList(testListSize){
            TestParcelizeBean(it, "from detail! list:$it")
        }
    }

//    @RFunction(path = "api/bigdata/lib-list")
//    fun getBigLibList(list: List<TestLibDataBean>): List<TestLibDataBean> {
//        println(" AP DBG DETAIL  getBigJsonList begin list:${list.size}!!!")
//        return List(testListSize){
//            TestLibDataBean(it, "from detail! list:$it")
//        }
//    }

    @RFunction(path = "api/bigdata/lib-list")
    fun getBigLibList(list: List<TestDataBean>): List<TestDataBean> {
        println(" AP DBG DETAIL  getBigJsonList begin list:${list.size}!!!")
        return List(testListSize){
            TestDataBean(it, "from detail! list:$it")
        }
    }

    @RFunction(path = "api/bigdata/parcel-arraylist")
    fun getBigParcelArrayList(list: List<TestParcelizeBean>): MutableList<TestParcelizeBean> {
        println(" AP DBG DETAIL  getBigJsonList begin arraylist:${list.size}!!!")
        return MutableList(testListSize){
            TestParcelizeBean(it, "from detail! arraylist:$it")
        }
    }

}

================================================
FILE: demo/demo_component_detail/src/main/java/com/mars/component/detail/api/ApisExt.kt
================================================
package com.mars.component.detail.api

import com.rubik.annotations.route.RExtend
import com.rubik.annotations.route.RRoute

// 扩展函数
@RRoute(path = "do-sth-ext")
fun doSthExt(s: String, @RExtend i: Int): Int {
    println(" AP DBG DETAIL  doSthExt i:$i !!!")
    return i
}

================================================
FILE: demo/demo_component_detail/src/main/java/com/mars/component/detail/api/ApisProvideInstance.kt
================================================
package com.mars.component.detail.api


import com.rubik.annotations.route.RInstance
import com.rubik.annotations.route.RRoute
import com.rubik.annotations.route.instance.RRouteInstance

class Task @RInstance(
    provideForPath = "do-sth-provide-instance-by-constructor"
) constructor(val value: String) {
    // 通过assist提供实例
    @RRoute(path = "do-sth-provide-instance-by-func")
    fun doSthProvideObject() {
        println(" AP DBG DETAIL  doSthProvideObject begin value:$value!!!")
    }

    @RRoute(path = "do-sth-provide-instance-by-func2")
    fun doSthProvideObject2() {
        println(" AP DBG DETAIL  doSthProvideObject begin value:$value!!!")
    }

    @RRoute(path = "do-sth-provide-instance-by-parameter-func")
    fun doSthProvideObject2(v1: String, v2: Int?, v3: Int?) {
        println(" AP DBG DETAIL  doSthProvideObjectByParameterFunction begin value:$value v1:$v1 v2:$v2 v3:$v3 :!!!")
    }

    @RRoute(path = "do-sth-provide-instance-by-constructor")
    fun doSthProvideObject3(v1: String, v2: Int?, v3: Int?) {
        println(" AP DBG DETAIL  doSthProvideObjectByConstructor begin value:$value v1:$v1 v2:$v2 v3:$v3 :!!!")
    }
}

@RInstance(provideForPath = "do-sth-provide-instance-by-func")
@RInstance(provideForPath = "do-sth-provide-instance-by-func2")
fun provideTask(): Task {
    println(" AP DBG DETAIL  provideTask begin !!!")
    return Task("TTT-CREATE BY FUNC")
}

@RInstance(provideForPath = "do-sth-provide-instance-by-parameter-func")
fun provideTask2(value: String, v0: Int?): Task {
    println(" AP DBG DETAIL  provideTask2 begin v0:$v0!!!")
    return Task(value)
}


================================================
FILE: demo/demo_component_detail/src/main/java/com/mars/component/detail/api/ApisWithLiveData.kt
================================================
package com.mars.component.detail.api

import android.os.Handler
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import com.mars.component.detail.value.TestDataBean
import com.mars.component.detail.value.TestListBean
import com.rubik.annotations.route.RRoute

class ApisWithLiveData {
    // 传递LiveData
    @RRoute(path = "live-data/get")
    fun getSthLiveData(): LiveData<String> {
        return MutableLiveData<String>().apply {
            this.postValue("i am from A")
            Handler().postDelayed({
                this.value = "i am also from A"
            }, 1000L)
        }
    }

    @RRoute(path = "live-data-bean/get")
    fun getSthLiveDataBean(): LiveData<TestDataBean> {
        return MutableLiveData<TestDataBean>().apply {
            this.value = TestDataBean(122334, "A1q2w3e")
        }
    }

    @RRoute(path = "live-data-bean-list/get")
    fun getSthLiveDataBeanList(): LiveData<List<TestListBean?>> {
        return MutableLiveData<List<TestListBean?>>().apply {
            this.value = listOf(
                TestListBean(45566778, listOf("A2QQQ", "A2WWW", "A2EEE")),
                TestListBean(67788990, listOf("A2AAA", "A2SSS", "A2DDD"))
            )
        }
    }
}

================================================
FILE: demo/demo_component_detail/src/main/java/com/mars/component/detail/api/ApisWithResultReceiver.kt
================================================
package com.mars.component.detail.api

import android.os.Bundle
import android.os.Handler
import android.os.ResultReceiver
import com.mars.component.detail.value.TestDataBean
import com.rubik.annotations.route.RRoute
import com.rubik.route.mapping.query
import com.rubik.router.bundleQueries
import com.rubik.router.property

class ApisWithResultReceiver {
    // 传递ResultReceiver
    @RRoute(path = "doSthResultReceiver")
    fun doSthResultReceiver(result: ResultReceiver): ResultReceiver {
        result.send(100, bundleQueries {
            "fromA" with " this is A "
            "BEAN_fromA" with TestDataBean(555,"A5r5r5r")
        })
        return object : ResultReceiver(Handler()) {
            override fun onReceiveResult(resultCode: Int, resultData: Bundle?) {
                super.onReceiveResult(resultCode, resultData)
                println(
                    " AP DBG DETAIL  doSthResultReceiver begin resultCode:$resultCode  " +
                            "resultData1:${resultData?.property<String>("fromB"
                    )} resultData2:${resultData?.property<TestDataBean>(
                        "BEAN_fromB"
                    )?.d2} !!!"
                )
            }
        }
    }
}

================================================
FILE: demo/demo_component_detail/src/main/java/com/mars/component/detail/callback/CallbackTestDefault.kt
================================================
package com.mars.component.detail.callback


import com.mars.component.detail.value.TestDataBean
import com.rubik.annotations.route.RCallback

@RCallback
interface CallbackTestDefault {

    fun callbackDefault1(int1: Int)

    fun callbackDefault2(bean:TestDataBean?)
}


================================================
FILE: demo/demo_component_detail/src/main/java/com/mars/component/detail/callback/CallbackTestInterface.kt
================================================
package com.mars.component.detail.callback


import com.mars.component.detail.value.TestDataBean
import com.rubik.annotations.route.RCallback
import com.rubik.annotations.route.RRoute

@RCallback
interface CallbackTestInterface {
    @RCallback
    fun callbackInt(i:Int)

    @RCallback
    fun callbackBean(bean:TestDataBean)

    @RCallback
    fun callbackBeanReBean(bean:TestDataBean?)
}

@RRoute(path = "do-sth-callback-object")
fun doSthCallbackObject(callback: CallbackTestInterface) {
    println(" AP DBG DETAIL  doSthCallbackObject begin this:${callback.hashCode()} !!!")
    callback.callbackInt(11)
    callback.callbackBean(TestDataBean(23, "sdsd"))
    callback.callbackBeanReBean(TestDataBean(24, "dfdf"))
}


================================================
FILE: demo/demo_component_detail/src/main/java/com/mars/component/detail/event/Events.kt
================================================
package com.mars.component.detail.event

import android.content.Context
import com.mars.component.detail.value.TestDataBean
import com.rubik.annotations.context.REvent
import com.rubik.annotations.route.RInstance
import com.rubik.annotations.route.RResult
import com.rubik.context.LifeCycleEvent

data class EventsWithLambda(
    @REvent(msg = LifeCycleEvent.INIT)
    val init: () -> Unit = {
        println(" CT DBG init DETAIL EventsWithLambda begin !!! !!!")
        initSdk()
    },
    @REvent(msg = LifeCycleEvent.DESTROY)
    val destroy: () -> Unit = {
        println(" CT DBG destroy DETAIL EventsWithLambda begin !!!")
    }
)

class Events {
    @REvent(msg = LifeCycleEvent.INIT)
    fun onInit(context: Context, parameter1: String) {
        println(" CT DBG init DETAIL Events begin :${context.hashCode()} parameter1:$parameter1!!!")
        initSdk()
    }

    @REvent(msg = LifeCycleEvent.DESTROY)
    fun onDestroy(context: Context, parameter1: String) {
        println(" CT DBG destroy DETAIL Events begin :${context.hashCode()} parameter1:$parameter1!!!")
    }
}

class EventsByInstance {
    @REvent(msg = "MY_INIT", tag = "events-by-instance")
    fun onInit(arg1: Any, arg2: Any, arg3: Any) {
        println(" CT DBG MY_INIT DETAIL:${hashCode()}  arg1:$arg1 arg2:$arg2 arg3:$arg3 EventsByInstance begin !!!")
        initSdk()
    }

    @REvent(msg = "MY_DESTROY", tag = "events-by-instance")
    fun onDestroy(arg1: Any, arg2: Any, arg3: Any) {
        println(" CT DBG MY_DESTROY DETAIL:${hashCode()}  arg1:$arg1 arg2:$arg2 arg3:$arg3  EventsByInstance begin !!!")
    }

    @REvent(msg = "MY_CALLBACK_RES", tag = "events-by-instance")
    fun onCallbackRes(arg1: Any, @RResult result: (Int) -> Unit) {
        println(" CT DBG MY_CALLBACK DETAIL:${hashCode()}  arg1:$arg1 result:$result EventsByInstance begin !!!")
    }

    @REvent(msg = "MY_CALLBACK_RES_BEAN", tag = "events-by-instance")
    fun onCallbackResBean(arg1: Any, @RResult result: (TestDataBean) -> Unit) {
        println(" CT DBG MY_CALLBACK_RES_BEAN DETAIL:${hashCode()}  arg1:$arg1 result:$result EventsByInstance begin !!!")
    }

    @REvent(msg = "MY_CALLBACK_BEAN", tag = "events-by-instance")
    fun onCallbackBean(arg1: Any, bean: TestDataBean) {
        println(" CT DBG MY_CALLBACK_BEAN DETAIL:${hashCode()}  arg1:$arg1 result:$bean EventsByInstance begin !!!")
    }
}

fun initSdk() {
    println(" CT DBG initSdk begin !!!")
}

private val life = EventsByInstance()

@RInstance(provideForTag = "events-by-instance")
@RInstance(provideForTag = "events-by-instance")
fun provideEventsInstance(bool: Boolean) = life

================================================
FILE: demo/demo_component_detail/src/main/java/com/mars/component/detail/objekt/ObjectTest.kt
================================================
package com.mars.component.detail.objekt


import com.mars.component.detail.value.TestDataBean
import com.rubik.annotations.route.RObject
import com.rubik.annotations.route.RRoute
import com.rubik.annotations.route.function.RFunction

@RObject
class ObjectTest(val value: String) {

    @RRoute(path = "do-sth-in-common-instance")
    fun doSthInObject(): TestDataBean {
        println(" AP DBG DETAIL  doSthProvideObject begin this:${this.hashCode()} value:$value!!!")
        return TestDataBean(645, "ahr")
    }

    @RRoute(path = "do-sth-in-common-instance-parameter")
    fun doSthInObject2(v1: String, v2: Int?, v3: Int?) {
        println(" AP DBG DETAIL  doSthProvideObject2 begin this:${this.hashCode()} value:$value " +
                "v1:$v1 v2:$v2 v3:$v3 :!!!")
    }

    @RFunction(path = "object/get/do-sth-in-common-ins")
    fun doSthInObject3(v1: String, v2: Int?, v3: Int?) {
        println(" AP DBG DETAIL  doSthProvideObject3 begin this:${this.hashCode()} value:$value " +
                "v1:$v1 v2:$v2 v3:$v3 :!!!")
    }

}


// get and send

@RRoute(path = "get-a-other-common-instance")
fun getAOtherObjectTest(i: Int) :ObjectTest= ObjectTest("x1x").apply {
    println(" AP DBG DETAIL  getAOtherObjectTestDa ${hashCode()} value:$value")
}

@RRoute(path = "send-back-common-instance")
fun senBackObjectTest(obj: ObjectTest) {
    println(" AP DBG DETAIL  senBackObjectTest ${obj.hashCode()} value:${obj?.value}")
}

@RFunction(path = "get-a-lot-of-common-instance")
fun getALotOfObjectTest(i: Int):List<ObjectTest> = mutableListOf(
    ObjectTest("yy1").apply {
        println(" AP DBG DETAIL  getALotOfObjectTest 1 ${hashCode()} value:$value")
    },
    ObjectTest("yy2").apply {
        println(" AP DBG DETAIL  getALotOfObjectTest 2 ${hashCode()} value:$value")
    },
    ObjectTest("yy3").apply {
        println(" AP DBG DETAIL  getALotOfObjectTest 3 ${hashCode()} value:$value")
    })

@RFunction(path = "send-back-a-lot-of-common-instance")
fun senBackALotOfObjectTest(objs: Map<String, ObjectTest>) {
    objs.forEach { (key, value) ->
        println(" AP DBG DETAIL  senBackALotOfObjectTest ${value.hashCode()} value:${value?.value} key:$key")
    }
}


@RRoute(path = "get-a-other-common-instance-null")
fun getAOtherObjectTestNull(i: Int) :ObjectTest?= ObjectTest("x1x").apply {
    println(" AP DBG DETAIL  getAOtherObjectTestNull ${hashCode()} value:$value")
}

@RRoute(path = "send-back-common-instance-null")
fun senBackObjectTestNull(obj: ObjectTest?) {
    println(" AP DBG DETAIL  senBackObjectTestNull ${obj.hashCode()} value:${obj?.value}")
}

@RFunction(path = "get-a-lot-of-common-instance-null")
fun getALotOfObjectTestNull(i: Int):List<ObjectTest?>? = mutableListOf(
    ObjectTest("yy1").apply {
        println(" AP DBG DETAIL  getALotOfObjectTestNull 0 ${hashCode()} value:$value")
    },
    ObjectTest("yy2").apply {
        println(" AP DBG DETAIL  getALotOfObjectTestNull 1 ${hashCode()} value:$value")
    },
    ObjectTest("yy3").apply {
        println(" AP DBG DETAIL  getALotOfObjectTestNull 2 ${hashCode()} value:$value")
    })

@RFunction(path = "send-back-a-lot-of-common-instance-null")
fun senBackALotOfObjectTesNull(objs: Map<String?, ObjectTest?>?) {
    objs?.forEach { (key, value) ->
        println(" AP DBG DETAIL  senBackALotOfObjectTesNull ${value.hashCode()} value:${value?.value} key:$key")
    }
}

================================================
FILE: demo/demo_component_detail/src/main/java/com/mars/component/detail/objekt/ObjectTestCteate.kt
================================================
package com.mars.component.detail.objekt


import com.mars.component.detail.value.TestDataBean
import com.rubik.annotations.route.RObject
import com.rubik.annotations.route.RRoute

class ObjectTestCreate
@RObject
constructor(
    val v1: Int, val v2: String
) {

    @RObject
    constructor(
        v1: Int,
        v2: Int,
        v3: Int,
        v4: Int
    ) : this(v1, v1.toString())

    @RRoute(path = "do-sth-create-common-instance")
    fun doSthInCreateObject(): TestDataBean {
        println(" AP DBG DETAIL  doSthInCreateObject begin this:${this.hashCode()} value:$v2!!!")
        return TestDataBean(985, "gds")
    }

}


================================================
FILE: demo/demo_component_detail/src/main/java/com/mars/component/detail/test/TestDataTypeTask.kt
================================================
package com.mars.component.detail.test

import android.content.Context
import com.mars.component.detail.value.TestNullableBean
import com.rubik.annotations.route.RResult
import com.rubik.annotations.route.RRoute

class TestDataTypeTask {
    @RRoute(path = "doTestDataType1", forResult = true)
    fun doTestDataType1(data: Context?): Context? {
        println(" AP DBG doTestDataType1 Context !!!")
        return data
    }

    @RRoute(path = "doTestDataType2", forResult = true)
    fun doTestDataType2(data: Int?): Int? {
        println(" AP DBG doTestDataType2 Int !!!")
        return data
    }

    @RRoute(path = "doTestDataType3", forResult = true)
    fun doTestDataType3(data: String?): String? {
        println(" AP DBG doTestDataType3 String !!!")
        return data
    }

    @RRoute(path = "doTestDataType4", forResult = true)
    fun doTestDataType4(data: TestNullableBean?): TestNullableBean? {
        println(" AP DBG doTestDataType4 A1Bean!!!")
        return data
    }

    @RRoute(path = "doTestDataType5", forResult = true)
    fun doTestDataType5(data: List<String>?): List<String>? {
        println(" AP DBG doTestDataType5 List<String>!!!")
        return data
    }

    @RRoute(path = "doTestDataType6", forResult = true)
    fun doTestDataType6(data: Array<Long>?): Array<Long>? {
        println(" AP DBG doTestDataType7 Array<Long> !!!")
        return data
    }

    @RRoute(path = "doTestDataType7", forResult = true)
    fun doTestDataType7(data: LongArray?): LongArray? {
        println(" AP DBG doTestDataType6 LongArray !!!")
        return data
    }

    @RRoute(path = "doTestDataType8", forResult = true)
    fun doTestDataType8(data: IntArray?): IntArray? {
        println(" AP DBG doTestDataType8 IntArray !!!")
        return data
    }

    @RRoute(path = "doTestDataType9", forResult = true)
    fun doTestDataType9(data: BooleanArray?): BooleanArray? {
        println(" AP DBG doTestDataType9 BooleanArray !!!")
        return data
    }

    @RRoute(path = "doTestDataType10")
    fun doTestDataType10(resultSuccess: (Int) -> Unit, resultSuccess2: (String) -> Unit) {
        println(" AP DBG HOF doTestDataType10 C1Bean HOF !!")
        resultSuccess.invoke(300)
        resultSuccess2.invoke("res-sus-10")
    }

    @RRoute(path = "doTestDataType11")
    fun doTestDataType11(
        @RResult resultSuccess: (Int, TestNullableBean) -> Unit,
        @RResult resultSuccess2: (TestNullableBean?) -> Unit
    ) {
        println(" AP DBG HOF doTestDataType11 C1Bean HOF !!")
        resultSuccess.invoke(400, TestNullableBean(null, "res-sus-11"))
        Thread().run {
            Thread.sleep(500)
            resultSuccess2.invoke(null)
        }
    }

    @RRoute(path = "doTestDataType13", forResult = true)
    fun doTestDataType13(data: List<Int?>): List<Int?> {
        println(" AP DBG doTestDataType13 List<Int?>!!!")
        return data
    }

    @RRoute(path = "doTestDataType14", forResult = true)
    fun doTestDataType14(data: ArrayList<Int?>): ArrayList<Int?> {
        println(" AP DBG doTestDataType14 ArrayList<Int?>!!!")
        return data
    }

    @RRoute(path = "doTestDataType15", forResult = true)
    fun doTestDataType15(data: List<TestNullableBean?>): List<TestNullableBean?> {
        println(" AP DBG doTestDataType15 List<C1Bean?>!!!")
        return data
    }

    @RRoute(path = "doTestDataType16", forResult = true)
    fun doTestDataType16(data: ArrayList<TestNullableBean?>): ArrayList<TestNullableBean?> {
        println(" AP DBG doTestDataType16 ArrayList<C1Bean?>!!!")
        return data
    }

    @RRoute(path = "doTestDataType17", forResult = true)
    fun doTestDataType17(data: List<String?>): List<String?> {
        println(" AP DBG doTestDataType17 List<String?>!!!")
        return data
    }

    @RRoute(path = "doTestDataType18", forResult = true)
    fun doTestDataType18(data: ArrayList<String?>): ArrayList<String?> {
        println(" AP DBG doTestDataType18 ArrayList<String?>!!!")
        return data
    }

    @RRoute(path = "doTestDataType19", forResult = true)
    fun doTestDataType19(data: ArrayList<Pair<String?, Int?>>): ArrayList<Pair<String?, Int?>> {
        println(" AP DBG doTestDataType19 ArrayList<Pair<String?,Int?>>!!!")
        return data
    }

    @RRoute(path = "doTestDataType20", forResult = true)
    fun doTestDataType20(media: Pair<Long?, String?>): List<String>?{
        return  null
    }

    @RRoute(path = "doTestDataType21", forResult = true)
    fun doTestDataType21(data: List<TestNullableBean>): List<TestNullableBean> {
        println(" AP DBG doTestDataType21  List<TestNullableBean>!!!")
        return data
    }

    @RRoute(path = "doTestDataType22", forResult = true)
    fun doTestDataType22(data: MutableList<TestNullableBean>): MutableList<TestNullableBean> {
        println(" AP DBG doTestDataType22 MutableList<TestNullableBean>!!!")
        return data
    }

    @RRoute(path = "doTestDataType23", forResult = true)
    fun doTestDataType23(data: Array<TestNullableBean>): Array<TestNullableBean> {
        println(" AP DBG doTestDataType23 Array<TestNullableBean>!!!")
        return data
    }

    @RRoute(path = "doTestDataType24", forResult = true)
    fun doTestDataType24(data: Map<String, TestNullableBean>): Map<String, TestNullableBean> {
        println(" AP DBG doTestDataType24 Map<String, TestNullableBean>!!!")
        return data
    }

    @RRoute(path = "doTestDataType25", forResult = true)
    fun doTestDataType25(data: MutableMap<String, TestNullableBean>): MutableMap<String, TestNullableBean> {
        println(" AP DBG doTestDataType25  MutableMap<String, TestNullableBean>!!!")
        return data
    }

    @RRoute(path = "doTestDataType26", forResult = true)
    fun doTestDataType26(data: Set<TestNullableBean>): Set<TestNullableBean> {
        println(" AP DBG doTestDataType26 ASet<TestNullableBean>!!!")
        return data
    }

    @RRoute(path = "doTestDataType27", forResult = true)
    fun doTestDataType27(data: MutableSet<TestNullableBean>): MutableSet<TestNullableBean> {
        println(" AP DBG doTestDataType27 MutableSet<TestNullableBean>!!!")
        return data
    }
}

================================================
FILE: demo/demo_component_detail/src/main/java/com/mars/component/detail/test/TestDefaultPathTask.kt
================================================
package com.mars.component.detail.test

import android.app.Activity
import com.rubik.annotations.route.RRoute
import com.rubik.annotations.route.function.RFunction
import kotlin.reflect.jvm.internal.impl.load.kotlin.JvmType

class TestDefaultPathTask {

    @RFunction
    fun testName(){

    }

    @RFunction
    fun TEST_NAME_UP(){

    }

    @RFunction
    val testNameString = ""

    @RRoute(forResult = false,resultType = Any::class)
    constructor()
}

================================================
FILE: demo/demo_component_detail/src/main/java/com/mars/component/detail/test/TestGenericityTask.kt
================================================
package com.mars.component.detail.test

import androidx.lifecycle.LiveData
import com.mars.component.detail.value.TestNullableBean
import com.rubik.annotations.route.RRoute

@RRoute(path = "doTestGenericity1", forResult = true)
fun doTestGenericity1(data: List<TestNullableBean?>?): List<TestNullableBean?>? {
    println(" AP DBG doTestGenericity1 Context !!!")
    return data
}

@RRoute(path = "doTestGenericity2", forResult = true)
fun doTestGenericity2(data: LiveData<TestNullableBean?>?): LiveData<TestNullableBean?>? {
    println(" AP DBG doTestGenericity2 Context !!!")
    return data
}

@RRoute(path = "doTestGenericity3", forResult = true)
fun doTestGenericity3(data: Map<String, Long?>): Map<String, Long?> {
    println(" AP DBG doTestGenericity3 Context !!!")
    return data
}

class TestGenericityTask {
    @RRoute(path = "testGenericity4", forResult = true)
    val testGenericity4: List<String?> = listOf()

    @RRoute(path = "testGenericity5", forResult = true)
    val testGenericity5: (List<String?>?) -> List<String?>? = {
        println(" AP DBG testGenericity5 Context !!!")
        it
    }

    @RRoute(path = "doTestGenericity6", forResult = true)
    fun doTestGenericity6(data: Array<TestNullableBean?>?): Array<TestNullableBean?>? {
        println(" AP DBG doTestGenericity6 Context !!!")
        return data
    }

    companion object {
        @RRoute(path = "doTestGenericity7", forResult = true)
        fun doTestGenericity7(data: Array<Long?>?): Array<Long?>? {
            println(" AP DBG doTestGenericity7 Context !!!")
            return data
        }
    }
}

@RRoute(path = "doTestGenericity8")
fun doTestGenericity8(resultSuccess: (ArrayList<String>) -> Unit){
    println(" AP DBG doTestGenericity8 Context !!!")

}

@RRoute(path = "doTestGenericity9")
fun doTestGenericity9(resultSuccess: (List<String>) -> Unit){
    println(" AP DBG doTestGenericity9 Context !!")
}

================================================
FILE: demo/demo_component_detail/src/main/java/com/mars/component/detail/ui/FirstPageActivity.kt
================================================
package com.mars.component.detail.ui

import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import com.mars.component.detail.R
import com.mars.component.detail.value.TestCompanionBean
import com.mars.component.detail.value.TestDataBean
import com.rubik.annotations.route.RProperty
import com.rubik.annotations.route.page.RPage
import com.rubik.router.property
import kotlinx.android.synthetic.main.activity_a1.*

@RPage(path = "activity/page1")
@RPage(path = "activity/page1_from_home")
@RPage(path = "activity/page1_from_detail")
class FirstPageActivity : AppCompatActivity() {

    @RProperty(name = "key_int_for_home", forPath = ["activity/page1_from_home"])
    private var intForA1b: Int? = null
        get() = property("key_int_for_home")

    @RProperty(name = "key_int_for_detail", forPath =  ["activity/page1_from_detail"])
    private var intForA1c: Int? = null
        get() = property("key_int_for_detail")

    @RProperty(name = "key_int_for_all", forPath = ["activity/page1_from_home", "activity/page1_from_detail"])
    private var intForAll: Int? = null
        get() = property("key_int_for_all")

    @get:RProperty(name = "key_3_int")
    private val inta: Int
        get() = property("key_3_int") ?: -1

    @get:RProperty(name = "uri")
    private val str: String?
        get() = property("uri")

    @get:RProperty(name = "key_4_strs", extra = "serializable")
    private val strs: List<String>?
        get() = property("key_4_strs")

    @get:RProperty(name = "key_a_ints")
    private val ints: List<Int>?
        get() = property("key_a_ints")

    private var aints: ArrayList<Int>? = null
        get() = property("key_a_ints")

    @RProperty(name = "key_5_bean")
    private var bean: TestDataBean? = null
        get() = property("key_5_bean")

    @RProperty(name = "key_1_pa")
    private var pa: TestCompanionBean? = null
        get() = property("key_1_pa")

    @RProperty(name = "key_2_pa_ar")
    private var paAr: Array<TestCompanionBean>? = null
        get() = property("key_2_pa_ar")

    @RProperty(name = "key_c_pa_li")
    private var paLi: List<TestCompanionBean>? = null
        get() = property("key_c_pa_li")

//    @RProperty(name = "key_pa_p")
//    private var paP: A3Bean? = null
//        get() = parcelableProperties("key_pa_p")
//
//    @RProperty(name = "key_pa_ar_p")
//    private var paArP: Array<A3Bean>? = null
//        get() = parcelableArrayProperties("key_pa_ar_p")
//
//    @RProperty(name = "key_pa_li_p")
//    private var paLiP: List<A3Bean>? = null
//        get() = parcelableListProperties("key_pa_li_p")
//
//    @RProperty(name = "key_ser")
//    private var ser: A4Bean? = null
//        get() = serializablProperties("key_ser")


    override fun onCreate(savedInstanceState: Bundle?) {
        println(" CT DBG TEST FirstPageActivity onCreate   !!!")
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_a1)
        val msg = "Hello FirstPageActivity !!\n" +
                    "$inta\n" +
                    "$str\n" +
                    "$strs\n" +
                    "$ints\n" +
                    "$aints\n" +
                    "${bean?.d1}\n" +
                    "${pa?.d1}\n" +
                    "${paAr?.get(0)?.d1}\n" +
                    "${paLi?.get(0)?.d1}\n"
//                    "$ser\n"
//                    "${paP?.b1}\n" +
//                    "${paArP?.get(0)?.b1}\n" +
//                    "${paLiP?.get(0)?.b1}\n"
        text_hello.text = msg


    }
}

//@RRoute(path = "notActivity2")
//class NotActivity(val b :TestClassB){
//}


================================================
FILE: demo/demo_component_detail/src/main/java/com/mars/component/detail/ui/FirstPageFragment.kt
================================================
package com.mars.component.detail.ui

import androidx.fragment.app.Fragment
import com.rubik.annotations.route.RRoute
import com.rubik.annotations.route.function.RFunction

class FirstPageFragment
@RFunction(
    path = "fragment/page1",
    resultType = Fragment::class
)
constructor() : Fragment() {
    val name = "FirstPageFragment"
}

================================================
FILE: demo/demo_component_detail/src/main/java/com/mars/component/detail/ui/SecondPageActivity.kt
================================================
package com.mars.component.detail.ui

import android.content.Intent
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import com.mars.component.detail.R
import com.rubik.annotations.route.RProperty
import com.rubik.annotations.route.RRoute
import com.rubik.annotations.route.page.RPage
import com.rubik.router.property
import kotlinx.android.synthetic.main.activity_a1.*

@RPage(path = "activity/page2/{key_str1}/{key_str2}/{key_str3}")
class SecondPageActivity : AppCompatActivity() {

    @RProperty(name = "key_str1")
    private var str1: String? = null
        get() =  property("key_str1")

    @RProperty(name = "key_str2")
    private var str2: String? = null
        get() =  property("key_str2")

    @RProperty(name = "key_str3")
    private var str3: String? = null
        get() =  property("key_str3")

    override fun onCreate(savedInstanceState: Bundle?) {
        println(" CT DBG TEST SecondPageActivity  onCreate  !!!")
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_a1)

        val msg = "Hello SecondPageActivity !!\n" +
                "$str1\n" +
                "$str2\n" +
                "$str3\n"
        text_hello.text = msg
        setResult(200, Intent().apply { putExtra("data", "data from A2") })

    }
}


================================================
FILE: demo/demo_component_detail/src/main/java/com/mars/component/detail/value/TestCompanionBean.kt
================================================
package com.mars.component.detail.value

import com.rubik.annotations.route.RValue

@RValue
data class TestCompanionBean(val d1: Int, val d2: String)  {
    companion object {
        const val C1 = 33
        const val C2 = "CONST_COMP"
        const val C3: Float = 0.1F
    }
}


================================================
FILE: demo/demo_component_detail/src/main/java/com/mars/component/detail/value/TestCreateBean.kt
================================================
package com.mars.component.detail.value

import com.google.gson.annotations.SerializedName
import com.rubik.annotations.route.RRoute
import com.rubik.annotations.route.RValue

@RValue
data class TestCreateBean @RRoute(
    path = "test-bean/create"
) constructor(
    @SerializedName("data1")
    val d1: Int?,
    @SerializedName("data2")
    val d2: String?
)


================================================
FILE: demo/demo_component_detail/src/main/java/com/mars/component/detail/value/TestDataBean.kt
================================================
package com.mars.component.detail.value

import com.rubik.annotations.route.RValue
import com.google.gson.annotations.SerializedName

@RValue
data class TestDataBean(@SerializedName("data1") val d1: Int?, @SerializedName("data2") val d2: String?)

================================================
FILE: demo/demo_component_detail/src/main/java/com/mars/component/detail/value/TestDataNotRValueBean.kt
================================================
package com.mars.component.detail.value

import com.rubik.annotations.route.RValue
import com.google.gson.annotations.SerializedName

data class TestDataNotRValueBean(@SerializedName("data1") val d1: Int?, @SerializedName("data2") val d2: String?)

================================================
FILE: demo/demo_component_detail/src/main/java/com/mars/component/detail/value/TestListBean.kt
================================================
package com.mars.component.detail.value

import com.rubik.annotations.route.RValue
import com.google.gson.annotations.SerializedName

@RValue
data class TestListBean(@SerializedName("data1") val d1: Int, val d2: List<String>?) {
    constructor(b1: Int) : this(b1, listOf())
}

================================================
FILE: demo/demo_component_detail/src/main/java/com/mars/component/detail/value/TestNullableBean.kt
================================================
package com.mars.component.detail.value

import com.google.gson.annotations.SerializedName
import com.rubik.annotations.route.RValue

@RValue
data class TestNullableBean(@SerializedName("ddd111") val d1: Int?, @SerializedName("ddd222") val d2: String?)

================================================
FILE: demo/demo_component_detail/src/main/java/com/mars/component/detail/value/TestOriginalBean.kt
================================================
package com.mars.component.detail.value

import java.io.Serializable
import com.rubik.annotations.source.ROriginalValue

@ROriginalValue
data class TestOriginalBean (val d1:Int, val d2:String): Serializable

================================================
FILE: demo/demo_component_detail/src/main/java/com/mars/component/detail/value/TestParcelizeBean.kt
================================================
package com.mars.component.detail.value

import android.os.Parcel
import android.os.Parcelable
import com.google.gson.annotations.SerializedName
import com.rubik.annotations.route.RValue
import kotlinx.android.parcel.Parcelize

@RValue
@Parcelize
data class TestParcelizeBean(
    val d1: Int?,
    val d2: String?
) : Parcelable
//{
//    constructor(parcel: Parcel) : this(
//        parcel.readInt(),
//        parcel.readString()
//    )
//    override fun describeContents(): Int {
//        return 0
//    }
//
//    override fun writeToParcel(dest: Parcel?, flags: Int) {
//        dest?.writeInt(d1 ?: -1)
//        dest?.writeString(d2)
//    }
//
//    companion object CREATOR : Parcelable.Creator<TestParcelizeBean> {
//        override fun createFromParcel(parcel: Parcel): TestParcelizeBean {
//            return TestParcelizeBean(parcel)
//        }
//
//        override fun newArray(size: Int): Array<TestParcelizeBean?> {
//            return arrayOfNulls(size)
//        }
//    }
//}

================================================
FILE: demo/demo_component_detail/src/main/java/com/mars/component/detail/value/TestSerializableBean.kt
================================================
package com.mars.component.detail.value

import com.google.gson.annotations.SerializedName
import com.rubik.annotations.route.RValue
import java.io.Serializable

@RValue
data class TestSerializableBean(
    @SerializedName("data1") val d1: Int?,
    @SerializedName("data2") val d2: String?
):Serializable

================================================
FILE: demo/demo_component_detail/src/main/java/com/mars/component/detail/value/mapping/TestDataMappingBean.kt
================================================
package com.mars.component.detail.value.mapping

import com.google.gson.annotations.SerializedName
import com.rubik.annotations.route.RValue


data class TestDataMappingBean @RValue constructor(
    @SerializedName("data1") val d1: Int?,
    @SerializedName("data2")
    val d2: String?
)

================================================
FILE: demo/demo_component_detail/src/main/java/com/mars/component/detail/value/mapping/TestNestDataMappingBean.kt
================================================
package com.mars.component.detail.value.mapping

import com.mars.component.detail.value.TestDataBean
import com.rubik.annotations.route.RValue


data class TestNestDataMappingBean @RValue constructor(
    val d1: TestDataBean?,
    val d2: TestDataMappingBean?,
    val d3: TestNestDataMappingBean?,
    val d4: List<TestDataBean>?,
    val d5: List<TestDataMappingBean>?
)

================================================
FILE: demo/demo_component_detail/src/main/ra/rubik/generate/aggregate/demo_com_mars_rubik_test_detail/DetailAggregate.kt
================================================
package rubik.generate.aggregate.demo_com_mars_rubik_test_detail

import android.app.Activity
import android.content.Context
import android.os.ResultReceiver
import android.view.View
import androidx.annotation.Keep
import androidx.fragment.app.Fragment
import androidx.lifecycle.LifecycleOwner
import androidx.lifecycle.LiveData
import androidx.lifecycle.ViewModelStoreOwner
import com.mars.component.detail.api.AipsInCompanion
import com.mars.component.detail.api.ApiSerialization
import com.mars.component.detail.api.Apis
import com.mars.component.detail.api.ApisAsyncReturn
import com.mars.component.detail.api.ApisBadCase
import com.mars.component.detail.api.ApisBigData
import com.mars.component.detail.api.ApisWithLiveData
import com.mars.component.detail.api.ApisWithResultReceiver
import com.mars.component.detail.api.BeanCallbackable
import com.mars.component.detail.api.Callback
import com.mars.component.detail.api.Callbackable
import com.mars.component.detail.api.GetFileMetaCallback
import com.mars.component.detail.api.MultiCallback
import com.mars.component.detail.api.Task
import com.mars.component.detail.event.Events
import com.mars.component.detail.event.EventsWithLambda
import com.mars.component.detail.test.TestDataTypeTask
import com.mars.component.detail.test.TestDefaultPathTask
import com.mars.component.detail.test.TestGenericityTask
import com.mars.component.detail.ui.FirstPageActivity
import com.mars.component.detail.ui.FirstPageFragment
import com.mars.component.detail.ui.SecondPageActivity
import com.rubik.annotations.source.RAggregate
import com.rubik.annotations.source.RGenerated
import com.rubik.context.Aggregatable
import com.rubik.context.AggregateFactory
import com.rubik.identity.RAggregateId
import com.rubik.route.mapping.castToTypeOfT
import com.rubik.route.mapping.mapToType
import com.rubik.route.mapping.toTypeOfT
import kotlin.Any
import kotlin.Array
import kotlin.BooleanArray
import kotlin.Function0
import kotlin.Function1
import kotlin.Function2
import kotlin.Function3
import kotlin.Function5
import kotlin.Int
import kotlin.IntArray
import kotlin.Long
import kotlin.LongArray
import kotlin.Pair
import kotlin.String
import kotlin.Unit
import kotlin.collections.ArrayList
import kotlin.collections.List
import kotlin.collections.Map
import kotlin.collections.Set
import rubik.generate.aggregate.demo_com_mars_rubik_test_detail.DetailAggregate.Mappings.toCallbackTestInterfaceOrgMapping
import rubik.generate.aggregate.demo_com_mars_rubik_test_detail.DetailAggregate.Mappings.toNullableObjectTestCtxMapping
import rubik.generate.aggregate.demo_com_mars_rubik_test_detail.DetailAggregate.Mappings.toNullableObjectTestOrgMapping
import rubik.generate.aggregate.demo_com_mars_rubik_test_detail.DetailAggregate.Mappings.toNullableTestDataMappingBeanCtxMapping
import rubik.generate.aggregate.demo_com_mars_rubik_test_detail.DetailAggregate.Mappings.toNullableTestDataMappingBeanOrgMapping
import rubik.generate.aggregate.demo_com_mars_rubik_test_detail.DetailAggregate.Mappings.toNullableTestNestDataMappingBeanCtxMapping
import rubik.generate.aggregate.demo_com_mars_rubik_test_detail.DetailAggregate.Mappings.toNullableTestNestDataMappingBeanOrgMapping
import rubik.generate.aggregate.demo_com_mars_rubik_test_detail.DetailAggregate.Mappings.toObjectTestCreateCtxMapping
import rubik.generate.aggregate.demo_com_mars_rubik_test_detail.DetailAggregate.Mappings.toObjectTestCreateOrgMapping
import rubik.generate.aggregate.demo_com_mars_rubik_test_detail.DetailAggregate.Mappings.toObjectTestCtxMapping
import rubik.generate.aggregate.demo_com_mars_rubik_test_detail.DetailAggregate.Mappings.toObjectTestOrgMapping
import rubik.generate.aggregate.demo_com_mars_rubik_test_detail.DetailAggregate.Mappings.toTestDataMappingBeanCtxMapping
import rubik.generate.aggregate.demo_com_mars_rubik_test_detail.DetailAggregate.Mappings.toTestDataMappingBeanOrgMapping
import rubik.generate.aggregate.demo_com_mars_rubik_test_detail.DetailAggregate.Mappings.toTestNestDataMappingBeanCtxMapping
import rubik.generate.aggregate.demo_com_mars_rubik_test_detail.DetailAggregate.Mappings.toTestNestDataMappingBeanOrgMapping
import rubik.generate.context.demo_com_mars_rubik_test_detail.DetailRouteActions
import com.mars.component.detail.callback.CallbackTestDefault as CallbackTestDefaultOrg
import com.mars.component.detail.callback.CallbackTestInterface as CallbackTestInterfaceOrg
import com.mars.component.detail.objekt.ObjectTestCreate as ObjectTestCreateOrg
import com.mars.component.detail.objekt.ObjectTest as ObjectTestOrg
import com.mars.component.detail.value.TestCompanionBean as TestCompanionBeanOrg
import com.mars.component.detail.value.TestCreateBean as TestCreateBeanOrg
import com.mars.component.detail.value.TestDataBean as TestDataBeanOrg
import com.mars.component.detail.value.TestListBean as TestListBeanOrg
import com.mars.component.detail.value.TestNullableBean as TestNullableBeanOrg
import com.mars.component.detail.value.TestParcelizeBean as TestParcelizeBeanOrg
import com.mars.component.detail.value.TestSerializableBean as TestSerializableBeanOrg
import com.mars.component.detail.value.mapping.TestDataMappingBean as TestDataMappingBeanOrg
import com.mars.component.detail.value.mapping.TestNestDataMappingBean as TestNestDataMappingBeanOrg
import com.rubik.activity.Launcher as RubikLauncher
import com.rubik.route.Queries as RubikQueries
import com.rubik.route.ResultGroups as RubikResultGroups
import com.rubik.route.Result as RubikResult
import com.rubik.router.uri.Path as RubikPath
import rubik.generate.context.demo_com_mars_rubik_test_detail.TestCompanionBean as TestCompanionBeanCtx
import rubik.generate.context.demo_com_mars_rubik_test_detail.TestCreateBean as TestCreateBeanCtx
import rubik.generate.context.demo_com_mars_rubik_test_detail.TestDataBean as TestDataBeanCtx
import rubik.generate.context.demo_com_mars_rubik_test_detail.TestDataMappingBean as TestDataMappingBeanCtx
import rubik.generate.context.demo_com_mars_rubik_test_detail.TestListBean as TestListBeanCtx
import rubik.generate.context.demo_com_mars_rubik_test_detail.TestNestDataMappingBean as TestNestDataMappingBeanCtx
import rubik.generate.context.demo_com_mars_rubik_test_detail.TestNullableBean as TestNullableBeanCtx
import rubik.generate.context.demo_com_mars_rubik_test_detail.TestParcelizeBean as TestParcelizeBeanCtx
import rubik.generate.context.demo_com_mars_rubik_test_detail.TestSerializableBean as TestSerializableBeanCtx
import rubik.generate.context.demo_com_mars_rubik_test_detail.callback.CallbackTestDefault as CallbackTestDefaultCtx
import rubik.generate.context.demo_com_mars_rubik_test_detail.callback.CallbackTestInterface as CallbackTestInterfaceCtx
import rubik.generate.context.demo_com_mars_rubik_test_detail.objekt.ObjectTestCreate as ObjectTestCreateCtx
import rubik.generate.context.demo_com_mars_rubik_test_detail.objekt.ObjectTest as ObjectTestCtx

/**
 * aggregate router function and router event of Rubik Context.
 *
 * uri: [demo://com.mars.rubik-test.detail] 
 * version: 0.0.1-DEV
 */
@RGenerated(
  kind = "aggregate",
  by = "rubik-kapt:1.10.0.0-K1_5-LOCAL",
  version = "0.0.1-DEV"
)
@Keep
class DetailAggregate : Aggregatable, DetailRouteActions {
  override fun onEvent(msg: String, queries: RubikQueries) {
    when (msg){
      "MY_INIT" ->  {
        // com.mars.component.detail.event.EventsByInstance.onInit
        // - parameters:
        // --- arg1 : kotlin.Any
        // --- arg2 : kotlin.Any
        // --- arg3 : kotlin.Any
        // - resultType:
        // --- null
        val rubikInstanceBool = queries.value(0, null)
        val arg1 = queries.value(1, null)
        val arg2 = queries.value(2, null)
        val arg3 = queries.value(3, null)
        com.mars.component.detail.event.provideEventsInstance(
          rubikInstanceBool.castToTypeOfT() /* -> NO NEED TO MAPPING :[kotlin.Boolean] */ 
        ) /* -> NO NEED TO MAPPING :[com.mars.component.detail.event.EventsByInstance] */ .onInit(
          arg1.castToTypeOfT() /* -> NO NEED TO MAPPING :[kotlin.Any] */ ,
          arg2.castToTypeOfT() /* -> NO NEED TO MAPPING :[kotlin.Any] */ ,
          arg3.castToTypeOfT() /* -> NO NEED TO MAPPING :[kotlin.Any] */ 
        )}
      "MY_DESTROY" ->  {
        // com.mars.component.detail.event.EventsByInstance.onDestroy
        // - parameters:
        // --- arg1 : kotlin.Any
        // --- arg2 : kotlin.Any
        // --- arg3 : kotlin.Any
        // - resultType:
        // --- null
        val rubikInstanceBool = queries.value(0, null)
        val arg1 = queries.value(1, null)
        val arg2 = queries.value(2, null)
        val arg3 = queries.value(3, null)
        com.mars.component.detail.event.provideEventsInstance(
          rubikInstanceBool.castToTypeOfT() /* -> NO NEED TO MAPPING :[kotlin.Boolean] */ 
        ) /* -> NO NEED TO MAPPING :[com.mars.component.detail.event.EventsByInstance] */ .onDestroy(
          arg1.castToTypeOfT() /* -> NO NEED TO MAPPING :[kotlin.Any] */ ,
          arg2.castToTypeOfT() /* -> NO NEED TO MAPPING :[kotlin.Any] */ ,
          arg3.castToTypeOfT() /* -> NO NEED TO MAPPING :[kotlin.Any] */ 
        )}
      "MY_CALLBACK_RES" ->  {
        // com.mars.component.detail.event.EventsByInstance.onCallbackRes
        // - parameters:
        // --- arg1 : kotlin.Any
        // --- result : kotlin.Function1<kotlin.Int, kotlin.Unit>
        // - resultType:
        // --- null
        val rubikInstanceBool = queries.value(0, null)
        val arg1 = queries.value(1, null)
        val resultCallback = queries.value(2, null)
        com.mars.component.detail.event.provideEventsInstance(
          rubikInstanceBool.castToTypeOfT() /* -> NO NEED TO MAPPING :[kotlin.Boolean] */ 
        ) /* -> NO NEED TO MAPPING :[com.mars.component.detail.event.EventsByInstance] */ .onCallbackRes(
          arg1.castToTypeOfT() /* -> NO NEED TO MAPPING :[kotlin.Any] */ ,
          resultCallback.castToTypeOfT() /* -> NO NEED TO MAPPING :[kotlin.Function1<kotlin.Int, kotlin.Unit>] */ 
        )}
      "MY_CALLBACK_RES_BEAN" ->  {
        // com.mars.component.detail.event.EventsByInstance.onCallbackResBean
        // - parameters:
        // --- arg1 : kotlin.Any
        // --- result : kotlin.Function1<com.mars.component.detail.value.TestDataBean, kotlin.Unit>
        // - resultType:
        // --- null
        val rubikInstanceBool = queries.value(0, null)
        val arg1 = queries.value(1, null)
        val resultCallback = queries.value(2, null).castToTypeOfT<Function1<TestDataBeanCtx, Unit>>()
        val resultCallbackCallbackTransformer: (Any?) -> Unit = { lambdaArg0 -> 
          resultCallback(
            lambdaArg0.toTypeOfT() /* -> TO CONTEXT TYPE :[rubik.generate.context.demo_com_mars_rubik_test_detail.TestDataBean] */ 
          )}
        com.mars.component.detail.event.provideEventsInstance(
          rubikInstanceBool.castToTypeOfT() /* -> NO NEED TO MAPPING :[kotlin.Boolean] */ 
        ) /* -> NO NEED TO MAPPING :[com.mars.component.detail.event.EventsByInstance] */ .onCallbackResBean(
          arg1.castToTypeOfT() /* -> NO NEED TO MAPPING :[kotlin.Any] */ ,
          resultCallbackCallbackTransformer.castToTypeOfT()
        )}
      "MY_CALLBACK_BEAN" ->  {
        // com.mars.component.detail.event.EventsByInstance.onCallbackBean
        // - parameters:
        // --- arg1 : kotlin.Any
        // --- bean : com.mars.component.detail.value.TestDataBean
        // - resultType:
        // --- null
        val rubikInstanceBool = queries.value(0, null)
        val arg1 = queries.value(1, null)
        val bean = queries.value(2, null)
        com.mars.component.detail.event.provideEventsInstance(
          rubikInstanceBool.castToTypeOfT() /* -> NO NEED TO MAPPING :[kotlin.Boolean] */ 
        ) /* -> NO NEED TO MAPPING :[com.mars.component.detail.event.EventsByInstance] */ .onCallbackBean(
          arg1.castToTypeOfT() /* -> NO NEED TO MAPPING :[kotlin.Any] */ ,
          bean.toTypeOfT() /* -> TO ORIGINAL TYPE :[com.mars.component.detail.value.TestDataBean] */ 
        )}
      "LifeCycleEvent_Init" ->  {
        // com.mars.component.detail.event.EventsWithLambda.init
        // - resultType:
        // --- kotlin.Unit
        EventsWithLambda().init() /* -> NO NEED TO MAPPING :[kotlin.Unit] */ // com.mars.component.detail.event.Events.onInit
        // - parameters:
        // --- context : android.content.Context
        // --- parameter1 : kotlin.String
        // - resultType:
        // --- null
        val context = queries.value(0, null)
        val parameter1 = queries.value(1, null)
        Events().onInit(
          context.castToTypeOfT() /* -> NO NEED TO MAPPING :[android.content.Context] */ ,
          parameter1.castToTypeOfT() /* -> NO NEED TO MAPPING :[kotlin.String] */ 
        )}
      "LifeCycleEvent_Destroy" ->  {
        // com.mars.component.detail.event.EventsWithLambda.destroy
        // - resultType:
        // --- kotlin.Unit
        EventsWithLambda().destroy() /* -> NO NEED TO MAPPING :[kotlin.Unit] */ // com.mars.component.detail.event.Events.onDestroy
        // - parameters:
        // --- context : android.content.Context
        // --- parameter1 : kotlin.String
        // - resultType:
        // --- null
        val context = queries.value(0, null)
        val parameter1 = queries.value(1, null)
        Events().onDestroy(
          context.castToTypeOfT() /* -> NO NEED TO MAPPING :[android.content.Context] */ ,
          parameter1.castToTypeOfT() /* -> NO NEED TO MAPPING :[kotlin.String] */ 
        )}
      else -> { }
    }
  }

  override fun onRoute(
    path: String,
    queries: RubikQueries,
    results: RubikResultGroups
  ) {
    when {
      "doTestGenericity7" == path ->  {
        val data = queries.value(0, null)
        doTestGenericity7(data.castToTypeOfT()).apply {
          results.set(0, RubikResult(this))
        }
      }
      "testGenericity4" == path ->  {
        testGenericity4().apply {
          results.set(0, RubikResult(this))
        }
      }
      "testGenericity5" == path ->  {
        val lambdaArg0 = queries.value(0, "lambdaArg0")
        testGenericity5(lambdaArg0.castToTypeOfT()).apply {
          results.set(0, RubikResult(this))
        }
      }
      "doTestGenericity6" == path ->  {
        val data = queries.value(0, null)
        doTestGenericity6(data.castToTypeOfT()).apply {
          results.set(0, RubikResult(this))
        }
      }
      "doTestGenericity1" == path ->  {
        val data = queries.value(0, null)
        doTestGenericity1(data.castToTypeOfT()).apply {
          results.set(0, RubikResult(this))
        }
      }
      "doTestGenericity2" == path ->  {
        val data = queries.value(0, null)
        doTestGenericity2(data.castToTypeOfT()).apply {
          results.set(0, RubikResult(this))
        }
      }
      "doTestGenericity3" == path ->  {
        val data = queries.value(0, null)
        doTestGenericity3(data.castToTypeOfT()).apply {
          results.set(0, RubikResult(this))
        }
      }
      "doTestGenericity8" == path ->  {
        val resultSuccessCallback = queries.value(0, null)
        doTestGenericity8(resultSuccessCallback.castToTypeOfT())
      }
      "doTestGenericity9" == path ->  {
        val resultSuccessCallback = queries.value(0, null)
        doTestGenericity9(resultSuccessCallback.castToTypeOfT())
      }
      "create-test-default-path-task-instance" == path ->  {
        val routeResultTransformer: (Any) -> Unit = { lambdaArg0 ->
          results.set(0, RubikResult(lambdaArg0))
        }
        createTestDefaultPathTaskInstance(routeResultTransformer)
      }
      "doTestDataType1" == path ->  {
        val data = queries.value(0, null)
        doTestDataType1(data.castToTypeOfT()).apply {
          results.set(0, RubikResult(this))
        }
      }
      "doTestDataType2" == path ->  {
        val data = queries.value(0, null)
        doTestDataType2(data.castToTypeOfT()).apply {
          results.set(0, RubikResult(this))
        }
      }
      "doTestDataType3" == path ->  {
        val data = queries.value(0, null)
        doTestDataType3(data.castToTypeOfT()).apply {
          results.set(0, RubikResult(this))
        }
      }
      "doTestDataType4" == path ->  {
        val data = queries.value(0, null)
        doTestDataType4(data.castToTypeOfT()).apply {
          results.set(0, RubikResult(this))
        }
      }
      "doTestDataType5" == path ->  {
        val data = queries.value(0, null)
        doTestDataType5(data.castToTypeOfT()).apply {
          results.set(0, RubikResult(this))
        }
      }
      else -> { onRouteExt1(path, queries, results) }
    }
  }

  private fun onRouteExt1(
    path: String,
    queries: RubikQueries,
    results: RubikResultGroups
  ) {
    when {
      "doTestDataType6" == path ->  {
        val data = queries.value(0, null)
        doTestDataType6(data.castToTypeOfT()).apply {
          results.set(0, RubikResult(this))
        }
      }
      "doTestDataType7" == path ->  {
        val data = queries.value(0, null)
        doTestDataType7(data.castToTypeOfT()).apply {
          results.set(0, RubikResult(this))
        }
      }
      "doTestDataType8" == path ->  {
        val data = queries.value(0, null)
        doTestDataType8(data.castToTypeOfT()).apply {
          results.set(0, RubikResult(this))
        }
      }
      "doTestDataType9" == path ->  {
        val data = queries.value(0, null)
        doTestDataType9(data.castToTypeOfT()).apply {
          results.set(0, RubikResult(this))
        }
      }
      "doTestDataType10" == path ->  {
        val resultSuccessCallback = queries.value(0, null)
        val resultSuccess2Callback = queries.value(1, null)
        doTestDataType10(resultSuccessCallback.castToTypeOfT(), resultSuccess2Callback.castToTypeOfT())
      }
      "doTestDataType11" == path ->  {
        val resultSuccessCallback: (Int, TestNullableBeanCtx) -> Unit = { lambdaArg0, lambdaArg1 ->
          results.set(0, RubikResult(lambdaArg0),RubikResult(lambdaArg1))
        }
        val resultSuccess2Callback: (TestNullableBeanCtx?) -> Unit = { lambdaArg0 ->
          results.set(1, RubikResult(lambdaArg0))
        }
        doTestDataType11(resultSuccessCallback, resultSuccess2Callback)
      }
      "doTestDataType13" == path ->  {
        val data = queries.value(0, null)
        doTestDataType13(data.castToTypeOfT()).apply {
          results.set(0, RubikResult(this))
        }
      }
      "doTestDataType14" == path ->  {
        val data = queries.value(0, null)
        doTestDataType14(data.castToTypeOfT()).apply {
          results.set(0, RubikResult(this))
        }
      }
      "doTestDataType15" == path ->  {
        val data = queries.value(0, null)
        doTestDataType15(data.castToTypeOfT()).apply {
          results.set(0, RubikResult(this))
        }
      }
      "doTestDataType16" == path ->  {
        val data = queries.value(0, null)
        doTestDataType16(data.castToTypeOfT()).apply {
          results.set(0, RubikResult(this))
        }
      }
      "doTestDataType17" == path ->  {
        val data = queries.value(0, null)
        doTestDataType17(data.castToTypeOfT()).apply {
          results.set(0, RubikResult(this))
        }
      }
      "doTestDataType18" == path ->  {
        val data = queries.value(0, null)
        doTestDataType18(data.castToTypeOfT()).apply {
          results.set(0, RubikResult(this))
        }
      }
      "doTestDataType19" == path ->  {
        val data = queries.value(0, null)
        doTestDataType19(data.castToTypeOfT()).apply {
          results.set(0, RubikResult(this))
        }
      }
      "doTestDataType20" == path ->  {
        val media = queries.value(0, null)
        doTestDataType20(media.castToTypeOfT()).apply {
          results.set(0, RubikResult(this))
        }
      }
      "doTestDataType21" == path ->  {
        val data = queries.value(0, null)
        doTestDataType21(data.castToTypeOfT()).apply {
          results.set(0, RubikResult(this))
        }
      }
      else -> { onRouteExt2(path, queries, results) }
    }
  }

  private fun onRouteExt2(
    path: String,
    queries: RubikQueries,
    results: RubikResultGroups
  ) {
    when {
      "doTestDataType22" == path ->  {
        val data = queries.value(0, null)
        doTestDataType22(data.castToTypeOfT()).apply {
          results.set(0, RubikResult(this))
        }
      }
      "doTestDataType23" == path ->  {
        val data = queries.value(0, null)
        doTestDataType23(data.castToTypeOfT()).apply {
          results.set(0, RubikResult(this))
        }
      }
      "doTestDataType24" == path ->  {
        val data = queries.value(0, null)
        doTestDataType24(data.castToTypeOfT()).apply {
          results.set(0, RubikResult(this))
        }
      }
      "doTestDataType25" == path ->  {
        val data = queries.value(0, null)
        doTestDataType25(data.castToTypeOfT()).apply {
          results.set(0, RubikResult(this))
        }
      }
      "doTestDataType26" == path ->  {
        val data = queries.value(0, null)
        doTestDataType26(data.castToTypeOfT()).apply {
          results.set(0, RubikResult(this))
        }
      }
      "doTestDataType27" == path ->  {
        val data = queries.value(0, null)
        doTestDataType27(data.castToTypeOfT()).apply {
          results.set(0, RubikResult(this))
        }
      }
      "test-bean/create" == path ->  {
        val d1 = queries.value(0, null)
        val d2 = queries.value(1, null)
        val routeResultTransformer: (TestCreateBeanCtx) -> Unit = { lambdaArg0 ->
          results.set(0, RubikResult(lambdaArg0))
        }
        testBeanCreate(d1.castToTypeOfT(), d2.castToTypeOfT(), routeResultTransformer)
      }
      "do-sth-in-common-instance" == path ->  {
        val objectInstance = queries.value(0, null)
        val routeResultTransformer: (TestDataBeanCtx) -> Unit = { lambdaArg0 ->
          results.set(0, RubikResult(lambdaArg0))
        }
        doSthInCommonInstance(objectInstance.castToTypeOfT(), routeResultTransformer)
      }
      "do-sth-in-common-instance-parameter" == path ->  {
        val objectInstance = queries.value(0, null)
        val v1 = queries.value(1, null)
        val v2 = queries.value(2, null)
        val v3 = queries.value(3, null)
        doSthInCommonInstanceParameter(objectInstance.castToTypeOfT(), v1.castToTypeOfT(), v2.castToTypeOfT(), v3.castToTypeOfT())
      }
      "do-sth-create-common-instance" == path ->  {
        val objectInstance = queries.value(0, null)
        val routeResultTransformer: (TestDataBeanCtx) -> Unit = { lambdaArg0 ->
          results.set(0, RubikResult(lambdaArg0))
        }
        doSthCreateCommonInstance(objectInstance.castToTypeOfT(), routeResultTransformer)
      }
      "get-a-other-common-instance" == path ->  {
        val i = queries.value(0, null)
        val routeResultTransformer: (ObjectTestCtx) -> Unit = { lambdaArg0 ->
          results.set(0, RubikResult(lambdaArg0))
        }
        getAOtherCommonInstance(i.castToTypeOfT(), routeResultTransformer)
      }
      "send-back-common-instance" == path ->  {
        val obj = queries.value(0, null)
        sendBackCommonInstance(obj.castToTypeOfT())
      }
      "get-a-other-common-instance-null" == path ->  {
        val i = queries.value(0, null)
        val routeResultTransformer: ((ObjectTestCtx?) -> Unit)? = { lambdaArg0 ->
          results.set(0, RubikResult(lambdaArg0))
        }
        getAOtherCommonInstanceNull(i.castToTypeOfT(), routeResultTransformer)
      }
      "send-back-common-instance-null" == path ->  {
        val obj = queries.value(0, null)
        sendBackCommonInstanceNull(obj.castToTypeOfT())
      }
      "do-sth-ext" == path ->  {
        val i = queries.value(0, null)
        val s = queries.value(1, null)
        val routeResultTransformer: (Int) -> Unit = { lambdaArg0 ->
          results.set(0, RubikResult(lambdaArg0))
        }
        doSthExt(i.castToTypeOfT(), s.castToTypeOfT(), routeResultTransformer)
      }
      else -> { onRouteExt3(path, queries, results) }
    }
  }

  private fun onRouteExt3(
    path: String,
    queries: RubikQueries,
    results: RubikResultGroups
  ) {
    when {
      "doSthCompanion" == path ->  {
        val i = queries.value(0, null)
        val j = queries.value(1, null)
        val k = queries.value(2, null)
        val routeResultTransformer: (String) -> Unit = { lambdaArg0 ->
          results.set(0, RubikResult(lambdaArg0))
        }
        doSthCompanion(i.castToTypeOfT(), j.castToTypeOfT(), k.castToTypeOfT(), routeResultTransformer)
      }
      "property/companion" == path ->  {
        val routeResultTransformer: (String) -> Unit = { lambdaArg0 ->
          results.set(0, RubikResult(lambdaArg0))
        }
        propertyCompanion(routeResultTransformer)
      }
      "doSthHOFCompanion" == path ->  {
        val lambdaArg0 = queries.value(0, "lambdaArg0")
        val routeResultTransformer: (Int) -> Unit = { lambdaArg0 ->
          results.set(0, RubikResult(lambdaArg0))
        }
        doSthHOFCompanion(lambdaArg0.castToTypeOfT(), routeResultTransformer)
      }
      "2.0/do-sth-hof" == path ->  {
        val lambdaArg0 = queries.value(0, "lambdaArg0")
        val lambdaArg1 = queries.value(1, "lambdaArg1")
        val lambdaArg2 = queries.value(2, "lambdaArg2")
        doSthHof(lambdaArg0.castToTypeOfT(), lambdaArg1.castToTypeOfT(), lambdaArg2.castToTypeOfT()).apply {
          results.set(0, RubikResult(this))
        }
      }
      "1.0/property/property" == path ->  {
        val routeResultTransformer: (String) -> Unit = { lambdaArg0 ->
          results.set(0, RubikResult(lambdaArg0))
        }
        propertyProperty(routeResultTransformer)
      }
      "do-sth" == path ->  {
        doSth()
      }
      "view/get" == path ->  {
        val context = queries.value(0, null)
        val routeResultTransformer: ((View?) -> Unit)? = { lambdaArg0 ->
          results.set(0, RubikResult(lambdaArg0))
        }
        viewGet(context.castToTypeOfT(), routeResultTransformer)
      }
      RubikPath("sth/{id}/a-{name}?code1={code1}&code2={code2}").matching(path) ->  {
        queries.addAll(RubikPath("sth/{id}/a-{name}?code1={code1}&code2={code2}").getParameters(path))
        val id = queries.value(0, null)
        val name = queries.value(1, null)
        val code1 = queries.value(2, null)
        val code2 = queries.value(3, null)
        val routeResultTransformer: (String) -> Unit = { lambdaArg0 ->
          results.set(0, RubikResult(lambdaArg0))
        }
        sthIdAName(id.castToTypeOfT(), name.castToTypeOfT(), code1.castToTypeOfT(), code2.castToTypeOfT(), routeResultTransformer)
      }
      RubikPath("sth-navigation-only/{uri}").matching(path) ->  {
        queries.addAll(RubikPath("sth-navigation-only/{uri}").getParameters(path))
        val uriParameter = queries.value(0, null)
        val routeResultTransformer: (String) -> Unit = { lambdaArg0 ->
          results.set(0, RubikResult(lambdaArg0))
        }
        sthNavigationOnlyUri(uriParameter.castToTypeOfT(), routeResultTransformer)
      }
      "doSthVararg" == path ->  {
        val no = queries.value(0, null)
        val varargString = queries.value(1, null)
        doSthVararg(no.castToTypeOfT(), *varargString.castToTypeOfT())
      }
      "doSthVarargHof" == path ->  {
        val no = queries.value(0, null)
        val varargString = queries.value(1, null)
        doSthVarargHof(no.castToTypeOfT(), *varargString.castToTypeOfT())
      }
      "doSthBean" == path ->  {
        val a1 = queries.value(0, null)
        val routeResultTransformer: (TestListBeanCtx) -> Unit = { lambdaArg0 ->
          results.set(0, RubikResult(lambdaArg0))
        }
        doSthBean(a1.castToTypeOfT(), routeResultTransformer)
      }
      "do-sth-uri-crash" == path ->  {
        val name = queries.value(0, null)
        val code = queries.value(1, null)
        doSthUriCrash(name.castToTypeOfT(), code.castToTypeOfT())
      }
      "do-sth-uri-crash-by-name-code-version" == path ->  {
        val name = queries.value(0, null)
        val code = queries.value(1, null)
        val version = queries.value(2, null)
        doSthUriCrashByNameCodeVersion(name.castToTypeOfT(), code.castToTypeOfT(), version.castToTypeOfT())
      }
      "doSthMappingBean" == path ->  {
        val a1 = queries.value(0, null)
        val routeResultTransformer: (TestDataMappingBeanCtx) -> Unit = { lambdaArg0 ->
          results.set(0, RubikResult(lambdaArg0))
        }
        doSthMappingBean(a1.castToTypeOfT(), routeResultTransformer)
      }
      else -> { onRouteExt4(path, queries, results) }
    }
  }

  private fun onRouteExt4(
    path: String,
    queries: RubikQueries,
    results: RubikResultGroups
  ) {
    when {
      "doSthTestNestDataMappingBean" == path ->  {
        val bean = queries.value(0, null)
        val routeResultTransformer: (TestNestDataMappingBeanCtx) -> Unit = { lambdaArg0 ->
          results.set(0, RubikResult(lambdaArg0))
        }
        doSthTestNestDataMappingBean(bean.castToTypeOfT(), routeResultTransformer)
      }
      "doSthAsyncHOF" == path ->  {
        val hofCallback: (String, TestDataBeanCtx) -> Unit = { lambdaArg0, lambdaArg1 ->
          results.set(0, RubikResult(lambdaArg0),RubikResult(lambdaArg1))
        }
        doSthAsyncHOF(hofCallback)
      }
      "doSthAsyncHOFNullable" == path ->  {
        val hof2xxCallback = queries.value(0, null)
        val hof4xxCallback = queries.value(1, null)
        val hofx1resCallback: ((String, TestDataBeanCtx) -> Unit)? = { lambdaArg0, lambdaArg1 ->
          results.set(0, RubikResult(lambdaArg0),RubikResult(lambdaArg1))
        }
        doSthAsyncHOFNullable(hof2xxCallback.castToTypeOfT(), hof4xxCallback.castToTypeOfT(), hofx1resCallback)
      }
      "doSthAsync2HOF" == path ->  {
        val hofCallback: (String, Int) -> Unit = { lambdaArg0, lambdaArg1 ->
          results.set(0, RubikResult(lambdaArg0),RubikResult(lambdaArg1))
        }
        val hof2Callback: (String, Int) -> Unit = { lambdaArg0, lambdaArg1 ->
          results.set(1, RubikResult(lambdaArg0),RubikResult(lambdaArg1))
        }
        doSthAsync2HOF(hofCallback, hof2Callback)
      }
      "doSthAsyncOpen" == path ->  {
        val uriParameter = queries.value(0, null)
        val onCallCallback: ((String?, Int) -> Unit)? = { lambdaArg0, lambdaArg1 ->
          results.set(0, RubikResult(lambdaArg0),RubikResult(lambdaArg1))
        }
        doSthAsyncOpen(uriParameter.castToTypeOfT(), onCallCallback)
      }
      "do-sth-async-interface" == path ->  {
        val onCallCallback: (String?, Int) -> Unit = { lambdaArg0, lambdaArg1 ->
          results.set(0, RubikResult(lambdaArg0),RubikResult(lambdaArg1))
        }
        doSthAsyncInterface(onCallCallback)
      }
      "do-sth-async-3-interface" == path ->  {
        val onCallCallback: ((String?, Int) -> Unit)? = { lambdaArg0, lambdaArg1 ->
          results.set(0, RubikResult(lambdaArg0),RubikResult(lambdaArg1))
        }
        val onCall1Callback: (String?, Int) -> Unit = { lambdaArg0, lambdaArg1 ->
          results.set(1, RubikResult(lambdaArg0),RubikResult(lambdaArg1))
        }
        val onCall2Callback: (TestDataBeanCtx?) -> Unit = { lambdaArg0 ->
          results.set(2, RubikResult(lambdaArg0))
        }
        doSthAsync3Interface(onCallCallback, onCall1Callback, onCall2Callback)
      }
      "do-sth-async-interface-multi-func" == path ->  {
        val startCallback: (String?, Int) -> Unit = { lambdaArg0, lambdaArg1 ->
          results.set(0, RubikResult(lambdaArg0),RubikResult(lambdaArg1))
        }
        val dataCallback: (TestDataBeanCtx?) -> Unit = { lambdaArg0 ->
          results.set(1, RubikResult(lambdaArg0))
        }
        val stopCallback: (String?, Int) -> Unit = { lambdaArg0, lambdaArg1 ->
          results.set(2, RubikResult(lambdaArg0),RubikResult(lambdaArg1))
        }
        doSthAsyncInterfaceMultiFunc(startCallback, dataCallback, stopCallback)
      }
      "doSthHOFTop" == path ->  {
        val lambdaArg0 = queries.value(0, "lambdaArg0")
        val routeResultTransformer: (Unit) -> Unit = { lambdaArg0 ->
          results.set(0, RubikResult(lambdaArg0))
        }
        doSthHOFTop(lambdaArg0.castToTypeOfT(), routeResultTransformer)
      }
      "property/top" == path ->  {
        val routeResultTransformer: (String) -> Unit = { lambdaArg0 ->
          results.set(0, RubikResult(lambdaArg0))
        }
        propertyTop(routeResultTransformer)
      }
      "doSthTop" == path ->  {
        val ints = queries.value(0, null)
        val li = queries.value(1, null)
        val strings = queries.value(2, null)
        val ls = queries.value(3, null)
        val beans = queries.value(4, null)
        val lb = queries.value(5, null)
        val routeResultTransformer: (List<TestDataBeanCtx>) -> Unit = { lambdaArg0 ->
          results.set(0, RubikResult(lambdaArg0))
        }
        doSthTop(ints.castToTypeOfT(), li.castToTypeOfT(), strings.castToTypeOfT(), ls.castToTypeOfT(), beans.castToTypeOfT(), lb.castToTypeOfT(), routeResultTransformer)
      }
      "getFilesMeta" == path ->  {
        val context = queries.value(0, null)
        val pathParameter = queries.value(1, null)
        val onResultCallback: (Long, String?) -> Unit = { lambdaArg0, lambdaArg1 ->
          results.set(0, RubikResult(lambdaArg0),RubikResult(lambdaArg1))
        }
        getFilesMeta(context.castToTypeOfT(), pathParameter.castToTypeOfT(), onResultCallback)
      }
      "enterprise/business/allocateTicket" == path ->  {
        val context = queries.value(0, null)
        val shareId = queries.value(1, null)
        val count = queries.value(2, null)
        val packetType = queries.value(3, null)
        val routeResultTransformer: ((LiveData<List<String>>?) -> Unit)? = { lambdaArg0 ->
          results.set(0, RubikResult(lambdaArg0))
        }
        enterpriseBusinessAllocateTicket(context.castToTypeOfT(), shareId.castToTypeOfT(), count.castToTypeOfT(), packetType.castToTypeOfT(), routeResultTransformer)
      }
      "do-sth-provide-instance-by-func" == path ->  {
        doSthProvideInstanceByFunc()
      }
      "do-sth-provide-instance-by-func2" == path ->  {
        doSthProvideInstanceByFunc2()
      }
      else -> { onRouteExt5(path, queries, results) }
    }
  }

  private fun onRouteExt5(
    path: String,
    queries: RubikQueries,
    results: RubikResultGroups
  ) {
    when {
      "do-sth-provide-instance-by-parameter-func" == path ->  {
        val rubikInstanceValue = queries.value(0, null)
        val rubikInstanceV0 = queries.value(1, null)
        val v1 = queries.value(2, null)
        val v2 = queries.value(3, null)
        val v3 = queries.value(4, null)
        doSthProvideInstanceByParameterFunc(rubikInstanceValue.castToTypeOfT(), rubikInstanceV0.castToTypeOfT(), v1.castToTypeOfT(), v2.castToTypeOfT(), v3.castToTypeOfT())
      }
      "do-sth-provide-instance-by-constructor" == path ->  {
        val rubikInstanceValue = queries.value(0, null)
        val v1 = queries.value(1, null)
        val v2 = queries.value(2, null)
        val v3 = queries.value(3, null)
        doSthProvideInstanceByConstructor(rubikInstanceValue.castToTypeOfT(), v1.castToTypeOfT(), v2.castToTypeOfT(), v3.castToTypeOfT())
      }
      "doSthResultReceiver" == path ->  {
        val resultParameter = queries.value(0, null)
        val routeResultTransformer: (ResultReceiver) -> Unit = { lambdaArg0 ->
          results.set(0, RubikResult(lambdaArg0))
        }
        doSthResultReceiver(resultParameter.castToTypeOfT(), routeResultTransformer)
      }
      "live-data/get" == path ->  {
        val routeResultTransformer: (LiveData<String>) -> Unit = { lambdaArg0 ->
          results.set(0, RubikResult(lambdaArg0))
        }
        liveDataGet(routeResultTransformer)
      }
      "live-data-bean/get" == path ->  {
        val routeResultTransformer: (LiveData<TestDataBeanCtx>) -> Unit = { lambdaArg0 ->
          results.set(0, RubikResult(lambdaArg0))
        }
        liveDataBeanGet(routeResultTransformer)
      }
      "live-data-bean-list/get" == path ->  {
        val routeResultTransformer: (LiveData<List<TestListBeanCtx?>>) -> Unit = { lambdaArg0 ->
          results.set(0, RubikResult(lambdaArg0))
        }
        liveDataBeanListGet(routeResultTransformer)
      }
      "do-sth-callback-object" == path ->  {
        val callback = queries.value(0, null)
        doSthCallbackObject(callback.castToTypeOfT())
      }
      "fragment/page1" == path ->  {
        fragmentPage1().apply {
          results.set(0, RubikResult(this))
        }
      }
      "test-name-string" == path ->  {
        testNameString().apply {
          results.set(0, RubikResult(this))
        }
      }
      "test-name" == path ->  {
        testName()
      }
      "test_name_up" == path ->  {
        testNameUp()
      }
      "object/get/do-sth-in-common-ins" == path ->  {
        val objectInstance = queries.value(0, null)
        val v1 = queries.value(1, null)
        val v2 = queries.value(2, null)
        val v3 = queries.value(3, null)
        objectGetDoSthInCommonIns(objectInstance.castToTypeOfT(), v1.castToTypeOfT(), v2.castToTypeOfT(), v3.castToTypeOfT())
      }
      "get-a-lot-of-common-instance" == path ->  {
        val i = queries.value(0, null)
        getALotOfCommonInstance(i.castToTypeOfT()).apply {
          results.set(0, RubikResult(this))
        }
      }
      "send-back-a-lot-of-common-instance" == path ->  {
        val objs = queries.value(0, null)
        sendBackALotOfCommonInstance(objs.castToTypeOfT())
      }
      "get-a-lot-of-common-instance-null" == path ->  {
        val i = queries.value(0, null)
        getALotOfCommonInstanceNull(i.castToTypeOfT()).apply {
          results.set(0, RubikResult(this))
        }
      }
      else -> { onRouteExt6(path, queries, results) }
    }
  }

  private fun onRouteExt6(
    path: String,
    queries: RubikQueries,
    results: RubikResultGroups
  ) {
    when {
      "send-back-a-lot-of-common-instance-null" == path ->  {
        val objs = queries.value(0, null)
        sendBackALotOfCommonInstanceNull(objs.castToTypeOfT())
      }
      "api/bigdata/json-array" == path ->  {
        val array = queries.value(0, null)
        apiBigdataJsonArray(array.castToTypeOfT()).apply {
          results.set(0, RubikResult(this))
        }
      }
      "api/bigdata/parcel-array" == path ->  {
        val array = queries.value(0, null)
        apiBigdataParcelArray(array.castToTypeOfT()).apply {
          results.set(0, RubikResult(this))
        }
      }
      "api/bigdata/lib-array" == path ->  {
        val array = queries.value(0, null)
        apiBigdataLibArray(array.castToTypeOfT()).apply {
          results.set(0, RubikResult(this))
        }
      }
      "api/bigdata/json-list" == path ->  {
        val list = queries.value(0, null)
        apiBigdataJsonList(list.castToTypeOfT()).apply {
          results.set(0, RubikResult(this))
        }
      }
      "api/bigdata/parcel-list" == path ->  {
        val list = queries.value(0, null)
        apiBigdataParcelList(list.castToTypeOfT()).apply {
          results.set(0, RubikResult(this))
        }
      }
      "api/bigdata/lib-list" == path ->  {
        val list = queries.value(0, null)
        apiBigdataLibList(list.castToTypeOfT()).apply {
          results.set(0, RubikResult(this))
        }
      }
      "api/bigdata/parcel-arraylist" == path ->  {
        val list = queries.value(0, null)
        apiBigdataParcelArraylist(list.castToTypeOfT()).apply {
          results.set(0, RubikResult(this))
        }
      }
      "api/serialization/parcel-bean" == path ->  {
        val parcelBean = queries.value(0, null)
        apiSerializationParcelBean(parcelBean.castToTypeOfT()).apply {
          results.set(0, RubikResult(this))
        }
      }
      "api/serialization/parcel-array" == path ->  {
        val parcels = queries.value(0, null)
        apiSerializationParcelArray(parcels.castToTypeOfT()).apply {
          results.set(0, RubikResult(this))
        }
      }
      "api/serialization/parcel-list" == path ->  {
        val parcels = queries.value(0, null)
        apiSerializationParcelList(parcels.castToTypeOfT()).apply {
          results.set(0, RubikResult(this))
        }
      }
      "api/serialization/Serializable-bean" == path ->  {
        val serializableBean = queries.value(0, null)
        apiSerializationSerializableBean(serializableBean.castToTypeOfT()).apply {
          results.set(0, RubikResult(this))
        }
      }
      "create-object-test-instance" == path ->  {
        val value = queries.value(0, null)
        createObjectTestInstance(value.castToTypeOfT()).apply {
          results.set(0, RubikResult(this))
        }
      }
      "create-object-test-create-instance" == path ->  {
        val v1 = queries.value(0, null)
        val v2 = queries.value(1, null)
        createObjectTestCreateInstance(v1.castToTypeOfT(), v2.castToTypeOfT()).apply {
          results.set(0, RubikResult(this))
        }
      }
      "create-object-test-create-instance-by-v1-v2-v3-v4" == path ->  {
        val v1 = queries.value(0, null)
        val v2 = queries.value(1, null)
        val v3 = queries.value(2, null)
        val v4 = queries.value(3, null)
        createObjectTestCreateInstanceByV1V2V3V4(v1.castToTypeOfT(), v2.castToTypeOfT(), v3.castToTypeOfT(), v4.castToTypeOfT()).apply {
          results.set(0, RubikResult(this))
        }
      }
      else -> { onRouteExt7(path, queries, results) }
    }
  }

  private fun onRouteExt7(
    path: String,
    queries: RubikQueries,
    results: RubikResultGroups
  ) {
    when {
      RubikPath("activity/page2/{key_str1}/{key_str2}/{key_str3}").matching(path) ->  {
        // com.mars.component.detail.ui.SecondPageActivity
        // - parameters:
        // --- key_str1 : kotlin.String?
        // --- key_str2 : kotlin.String?
        // --- key_str3 : kotlin.String?
        RubikLauncher().launch(SecondPageActivity::class.java, queries, RubikPath("activity/page2/{key_str1}/{key_str2}/{key_str3}").getParameters(path), results)
      }
      "activity/page1_from_detail" == path ->  {
        // com.mars.component.detail.ui.FirstPageActivity
        // - parameters:
        // --- key_1_pa : com.mars.component.detail.value.TestCompanionBean?
        // --- key_2_pa_ar : kotlin.Array<com.mars.component.detail.value.TestCompanionBean>?
        // --- key_3_int : kotlin.Int
        // --- key_4_strs : kotlin.collections.List<kotlin.String>?
        // --- key_5_bean : com.mars.component.detail.value.TestDataBean?
        // --- key_a_ints : kotlin.collections.List<kotlin.Int>?
        // --- key_c_pa_li : kotlin.collections.List<com.mars.component.detail.value.TestCompanionBean>?
        // --- key_int_for_all : kotlin.Int?
        // --- key_int_for_detail : kotlin.Int?
        // --- uri : kotlin.String?
        RubikLauncher().launch(FirstPageActivity::class.java, queries, null, results)
      }
      "activity/page1_from_home" == path ->  {
        // com.mars.component.detail.ui.FirstPageActivity
        // - parameters:
        // --- key_1_pa : com.mars.component.detail.value.TestCompanionBean?
        // --- key_2_pa_ar : kotlin.Array<com.mars.component.detail.value.TestCompanionBean>?
        // --- key_3_int : kotlin.Int
        // --- key_4_strs : kotlin.collections.List<kotlin.String>?
        // --- key_5_bean : com.mars.component.detail.value.TestDataBean?
        // --- key_a_ints : kotlin.collections.List<kotlin.Int>?
        // --- key_c_pa_li : kotlin.collections.List<com.mars.component.detail.value.TestCompanionBean>?
        // --- key_int_for_all : kotlin.Int?
        // --- key_int_for_home : kotlin.Int?
        // --- uri : kotlin.String?
        RubikLauncher().launch(FirstPageActivity::class.java, queries, null, results)
      }
      "activity/page1" == path ->  {
        // com.mars.component.detail.ui.FirstPageActivity
        // - parameters:
        // --- key_1_pa : com.mars.component.detail.value.TestCompanionBean?
        // --- key_2_pa_ar : kotlin.Array<com.mars.component.detail.value.TestCompanionBean>?
        // --- key_3_int : kotlin.Int
        // --- key_4_strs : kotlin.collections.List<kotlin.String>?
        // --- key_5_bean : com.mars.component.detail.value.TestDataBean?
        // --- key_a_ints : kotlin.collections.List<kotlin.Int>?
        // --- key_c_pa_li : kotlin.collections.List<com.mars.component.detail.value.TestCompanionBean>?
        // --- uri : kotlin.String?
        RubikLauncher().launch(FirstPageActivity::class.java, queries, null, results)
      }
      else -> { throw com.rubik.route.exception.BadPathOrVersionException(path) }
    }
  }

  override fun doTestGenericity7(data: Array<Long?>?): Array<Long?>? {
    // com.mars.component.detail.test.TestGenericityTask.Companion.doTestGenericity7
    // - parameters:
    // --- data : kotlin.Array<kotlin.Long?>?
    // - resultType:
    // --- kotlin.Array<kotlin.Long?>?
    return TestGenericityTask.Companion.doTestGenericity7(
      data /* -> NO NEED TO MAPPING :[kotlin.Array<kotlin.Long?>?] */ 
    ) /* -> NO NEED TO MAPPING :[kotlin.Array<kotlin.Long?>?] */ 
  }

  override fun testGenericity4(): List<String?>? {
    // com.mars.component.detail.test.TestGenericityTask.testGenericity4
    // - resultType:
    // --- kotlin.collections.List<kotlin.String?>
    return TestGenericityTask().testGenericity4 /* -> NO NEED TO MAPPING :[kotlin.collections.List<kotlin.String?>] */ 
  }

  override fun testGenericity5(lambdaArg0: List<String?>?): List<String?>? {
    // com.mars.component.detail.test.TestGenericityTask.testGenericity5
    // - parameters:
    // --- lambdaArg0 : kotlin.collections.List<kotlin.String?>?
    // - resultType:
    // --- kotlin.collections.List<kotlin.String?>?
    return TestGenericityTask().testGenericity5(
      lambdaArg0 /* -> NO NEED TO MAPPING :[kotlin.collections.List<kotlin.String?>?] */ 
    ) /* -> NO NEED TO MAPPING :[kotlin.collections.List<kotlin.String?>?] */ 
  }

  override fun doTestGenericity6(data: Array<TestNullableBeanCtx?>?): Array<TestNullableBeanCtx?>? {
    // com.mars.component.detail.test.TestGenericityTask.doTestGenericity6
    // - parameters:
    // --- data : kotlin.Array<com.mars.component.detail.value.TestNullableBean?>?
    // - resultType:
    // --- kotlin.Array<com.mars.component.detail.value.TestNullableBean?>?
    return TestGenericityTask().doTestGenericity6(
      data?.toTypeOfT() /* -> TO ORIGINAL TYPE :[kotlin.Array<com.mars.component.detail.value.TestNullableBean?>?] */ 
    )?.toTypeOfT() /* -> TO CONTEXT TYPE :[kotlin.Array<rubik.generate.context.demo_com_mars_rubik_test_detail.TestNullableBean?>?] */ 
  }

  override fun doTestGenericity1(data: List<TestNullableBeanCtx?>?): List<TestNullableBeanCtx?>? {
    // com.mars.component.detail.test.TestGenericityTaskKt.doTestGenericity1
    // - parameters:
    // --- data : kotlin.collections.List<com.mars.component.detail.value.TestNullableBean?>?
    // - resultType:
    // --- kotlin.collections.List<com.mars.component.detail.value.TestNullableBean?>?
    return com.mars.component.detail.test.doTestGenericity1(
      data?.toTypeOfT() /* -> TO ORIGINAL TYPE :[kotlin.collections.List<com.mars.component.detail.value.TestNullableBean?>?] */ 
    )?.toTypeOfT() /* -> TO CONTEXT TYPE :[kotlin.collections.List<rubik.generate.context.demo_com_mars_rubik_test_detail.TestNullableBean?>?] */ 
  }

  override fun doTestGenericity2(data: LiveData<TestNullableBeanCtx?>?):
      LiveData<TestNullableBeanCtx?>? {
    // com.mars.component.detail.test.TestGenericityTaskKt.doTestGenericity2
    // - parameters:
    // --- data : androidx.lifecycle.LiveData<com.mars.component.detail.value.TestNullableBean?>?
    // - resultType:
    // --- androidx.lifecycle.LiveData<com.mars.component.detail.value.TestNullableBean?>?
    return com.mars.component.detail.test.doTestGenericity2(
      data?.toTypeOfT() /* -> TO ORIGINAL TYPE :[androidx.lifecycle.LiveData<com.mars.component.detail.value.TestNullableBean?>?] */ 
    )?.toTypeOfT() /* -> TO CONTEXT TYPE :[androidx.lifecycle.LiveData<rubik.generate.context.demo_com_mars_rubik_test_detail.TestNullableBean?>?] */ 
  }

  override fun doTestGenericity3(data: Map<String, Long?>): Map<String, Long?>? {
    // com.mars.component.detail.test.TestGenericityTaskKt.doTestGenericity3
    // - parameters:
    // --- data : kotlin.collections.Map<kotlin.String, kotlin.Long?>
    // - resultType:
    // --- kotlin.collections.Map<kotlin.String, kotlin.Long?>
    return com.mars.component.detail.test.doTestGenericity3(
      data /* -> NO NEED TO MAPPING :[kotlin.collections.Map<kotlin.String, kotlin.Long?>] */ 
    ) /* -> NO NEED TO MAPPING :[kotlin.collections.Map<kotlin.String, kotlin.Long?>] */ 
  }

  override fun doTestGenericity8(resultSuccessCallback: Function1<ArrayList<String>, Unit>) {
    // com.mars.component.detail.test.TestGenericityTaskKt.doTestGenericity8
    // - parameters:
    // --- resultSuccess : kotlin.Function1<kotlin.collections.ArrayList<kotlin.String>, kotlin.Unit>
    // - resultType:
    // --- null
    com.mars.component.detail.test.doTestGenericity8(
      resultSuccessCallback /* -> NO NEED TO MAPPING :[kotlin.Function1<kotlin.collections.ArrayList<kotlin.String>, kotlin.Unit>] */ 
    )
  }

  override fun doTestGenericity9(resultSuccessCallback: Function1<List<String>, Unit>) {
    // com.mars.component.detail.test.TestGenericityTaskKt.doTestGenericity9
    // - parameters:
    // --- resultSuccess : kotlin.Function1<kotlin.collections.List<kotlin.String>, kotlin.Unit>
    // - resultType:
    // --- null
    com.mars.component.detail.test.doTestGenericity9(
      resultSuccessCallback /* -> NO NEED TO MAPPING :[kotlin.Function1<kotlin.collections.List<kotlin.String>, kotlin.Unit>] */ 
    )
  }

  override fun createTestDefaultPathTaskInstance(routeResultTransformer: (Any) -> Unit) {
    // com.mars.component.detail.test.TestDefaultPathTask
    // - resultType:
    // --- com.mars.component.detail.test.TestDefaultPathTask
    routeResultTransformer(TestDefaultPathTask() /* -> NO NEED TO MAPPING :[com.mars.component.detail.test.TestDefaultPathTask] */ )
  }

  override fun doTestDataType1(data: Context?): Context? {
    // com.mars.component.detail.test.TestDataTypeTask.doTestDataType1
    // - parameters:
    // --- data : android.content.Context?
    // - resultType:
    // --- android.content.Context?
    return TestDataTypeTask().doTestDataType1(
      data /* -> NO NEED TO MAPPING :[android.content.Context?] */ 
    ) /* -> NO NEED TO MAPPING :[android.content.Context?] */ 
  }

  override fun doTestDataType2(data: Int?): Int? {
    // com.mars.component.detail.test.TestDataTypeTask.doTestDataType2
    // - parameters:
    // --- data : kotlin.Int?
    // - resultType:
    // --- kotlin.Int?
    return TestDataTypeTask().doTestDataType2(
      data /* -> NO NEED TO MAPPING :[kotlin.Int?] */ 
    ) /* -> NO NEED TO MAPPING :[kotlin.Int?] */ 
  }

  override fun doTestDataType3(data: String?): String? {
    // com.mars.component.detail.test.TestDataTypeTask.doTestDataType3
    // - parameters:
    // --- data : kotlin.String?
    // - resultType:
    // --- kotlin.String?
    return TestDataTypeTask().doTestDataType3(
      data /* -> NO NEED TO MAPPING :[kotlin.String?] */ 
    ) /* -> NO NEED TO MAPPING :[kotlin.String?] */ 
  }

  override fun doTestDataType4(data: TestNullableBeanCtx?): TestNullableBeanCtx? {
    // com.mars.component.detail.test.TestDataTypeTask.doTestDataType4
    // - parameters:
    // --- data : com.mars.component.detail.value.TestNullableBean?
    // - resultType:
    // --- com.mars.component.detail.value.TestNullableBean?
    return TestDataTypeTask().doTestDataType4(
      data?.toTypeOfT() /* -> TO ORIGINAL TYPE :[com.mars.component.detail.value.TestNullableBean?] */ 
    )?.toTypeOfT() /* -> TO CONTEXT TYPE :[rubik.generate.context.demo_com_mars_rubik_test_detail.TestNullableBean?] */ 
  }

  override fun doTestDataType5(data: List<String>?): List<String>? {
    // com.mars.component.detail.test.TestDataTypeTask.doTestDataType5
    // - parameters:
    // --- data : kotlin.collections.List<kotlin.String>?
    // - resultType:
    // --- kotlin.collections.List<kotlin.String>?
    return TestDataTypeTask().doTestDataType5(
      data /* -> NO NEED TO MAPPING :[kotlin.collections.List<kotlin.String>?] */ 
    ) /* -> NO NEED TO MAPPING :[kotlin.collections.List<kotlin.String>?] */ 
  }

  override fun doTestDataType6(data: Array<Long>?): Array<Long>? {
    // com.mars.component.detail.test.TestDataTypeTask.doTestDataType6
    // - parameters:
    // --- data : kotlin.Array<kotlin.Long>?
    // - resultType:
    // --- kotlin.Array<kotlin.Long>?
    return TestDataTypeTask().doTestDataType6(
      data /* -> NO NEED TO MAPPING :[kotlin.Array<kotlin.Long>?] */ 
    ) /* -> NO NEED TO MAPPING :[kotlin.Array<kotlin.Long>?] */ 
  }

  override fun doTestDataType7(data: LongArray?): LongArray? {
    // com.mars.component.detail.test.TestDataTypeTask.doTestDataType7
    // - parameters:
    // --- data : kotlin.LongArray?
    // - resultType:
    // --- kotlin.LongArray?
    return TestDataTypeTask().doTestDataType7(
      data /* -> NO NEED TO MAPPING :[kotlin.LongArray?] */ 
    ) /* -> NO NEED TO MAPPING :[kotlin.LongArray?] */ 
  }

  override fun doTestDataType8(data: IntArray?): IntArray? {
    // com.mars.component.detail.test.TestDataTypeTask.doTestDataType8
    // - parameters:
    // --- data : kotlin.IntArray?
    // - resultType:
    // --- kotlin.IntArray?
    return TestDataTypeTask().doTestDataType8(
      data /* -> NO NEED TO MAPPING :[kotlin.IntArray?] */ 
    ) /* -> NO NEED TO MAPPING :[kotlin.IntArray?] */ 
  }

  override fun doTestDataType9(data: BooleanArray?): BooleanArray? {
    // com.mars.component.detail.test.TestDataTypeTask.doTestDataType9
    // - parameters:
    // --- data : kotlin.BooleanArray?
    // - resultType:
    // --- kotlin.BooleanArray?
    return TestDataTypeTask().doTestDataType9(
      data /* -> NO NEED TO MAPPING :[kotlin.BooleanArray?] */ 
    ) /* -> NO NEED TO MAPPING :[kotlin.BooleanArray?] */ 
  }

  override fun doTestDataType10(resultSuccessCallback: Function1<Int, Unit>,
      resultSuccess2Callback: Function1<String, Unit>) {
    // com.mars.component.detail.test.TestDataTypeTask.doTestDataType10
    // - parameters:
    // --- resultSuccess : kotlin.Function1<kotlin.Int, kotlin.Unit>
    // --- resultSuccess2 : kotlin.Function1<kotlin.String, kotlin.Unit>
    // - resultType:
    // --- null
    TestDataTypeTask().doTestDataType10(
      resultSuccessCallback /* -> NO NEED TO MAPPING :[kotlin.Function1<kotlin.Int, kotlin.Unit>] */ ,
      resultSuccess2Callback /* -> NO NEED TO MAPPING :[kotlin.Function1<kotlin.String, kotlin.Unit>] */ 
    )
  }

  override fun doTestDataType11(resultSuccessCallback: (Int, TestNullableBeanCtx) -> Unit,
      resultSuccess2Callback: (TestNullableBeanCtx?) -> Unit) {
    // com.mars.component.detail.test.TestDataTypeTask.doTestDataType11
    // - parameters:
    // --- resultSuccess : kotlin.Function2<kotlin.Int, com.mars.component.detail.value.TestNullableBean, kotlin.Unit>
    // --- resultSuccess2 : kotlin.Function1<com.mars.component.detail.value.TestNullableBean?, kotlin.Unit>
    // - resultType:
    // --- null
    val resultSuccessCallbackCallbackTransformer: (Any?, Any?) -> Unit = { lambdaArg0, lambdaArg1 -> 
      resultSuccessCallback(
        lambdaArg0.castToTypeOfT() /* -> NO NEED TO MAPPING :[kotlin.Int] */ ,
        lambdaArg1.toTypeOfT() /* -> TO CONTEXT TYPE :[rubik.generate.context.demo_com_mars_rubik_test_detail.TestNullableBean] */ 
      )}
    val resultSuccess2CallbackCallbackTransformer: (Any?) -> Unit = { lambdaArg0 -> 
      resultSuccess2Callback(
        lambdaArg0?.toTypeOfT() /* -> TO CONTEXT TYPE :[rubik.generate.context.demo_com_mars_rubik_test_detail.TestNullableBean?] */ 
      )}
    TestDataTypeTask().doTestDataType11(
      resultSuccessCallbackCallbackTransformer,
      resultSuccess2CallbackCallbackTransformer
    )
  }

  override fun doTestDataType13(data: List<Int?>): List<Int?>? {
    // com.mars.component.detail.test.TestDataTypeTask.doTestDataType13
    // - parameters:
    // --- data : kotlin.collections.List<kotlin.Int?>
    // - resultType:
    // --- kotlin.collections.List<kotlin.Int?>
    return TestDataTypeTask().doTestDataType13(
      data /* -> NO NEED TO MAPPING :[kotlin.collections.List<kotlin.Int?>] */ 
    ) /* -> NO NEED TO MAPPING :[kotlin.collections.List<kotlin.Int?>] */ 
  }

  override fun doTestDataType14(data: ArrayList<Int?>): ArrayList<Int?>? {
    // com.mars.component.detail.test.TestDataTypeTask.doTestDataType14
    // - parameters:
    // --- data : kotlin.collections.ArrayList<kotlin.Int?>
    // - resultType:
    // --- kotlin.collections.ArrayList<kotlin.Int?>
    return TestDataTypeTask().doTestDataType14(
      data /* -> NO NEED TO MAPPING :[kotlin.collections.ArrayList<kotlin.Int?>] */ 
    ) /* -> NO NEED TO MAPPING :[kotlin.collections.ArrayList<kotlin.Int?>] */ 
  }

  override fun doTestDataType15(data: List<TestNullableBeanCtx?>): List<TestNullableBeanCtx?>? {
    // com.mars.component.detail.test.TestDataTypeTask.doTestDataType15
    // - parameters:
    // --- data : kotlin.collections.List<com.mars.component.detail.value.TestNullableBean?>
    // - resultType:
    // --- kotlin.collections.List<com.mars.component.detail.value.TestNullableBean?>
    return TestDataTypeTask().doTestDataType15(
      data.toTypeOfT() /* -> TO ORIGINAL TYPE :[kotlin.collections.List<com.mars.component.detail.value.TestNullableBean?>] */ 
    ).toTypeOfT() /* -> TO CONTEXT TYPE :[kotlin.collections.List<rubik.generate.context.demo_com_mars_rubik_test_detail.TestNullableBean?>] */ 
  }

  override fun doTestDataType16(data: ArrayList<TestNullableBeanCtx?>):
      ArrayList<TestNullableBeanCtx?>? {
    // com.mars.component.detail.test.TestDataTypeTask.doTestDataType16
    // - parameters:
    // --- data : kotlin.collections.ArrayList<com.mars.component.detail.value.TestNullableBean?>
    // - resultType:
    // --- kotlin.collections.ArrayList<com.mars.component.detail.value.TestNullableBean?>
    return TestDataTypeTask().doTestDataType16(
      data.toTypeOfT() /* -> TO ORIGINAL TYPE :[kotlin.collections.ArrayList<com.mars.component.detail.value.TestNullableBean?>] */ 
    ).toTypeOfT() /* -> TO CONTEXT TYPE :[kotlin.collections.ArrayList<rubik.generate.context.demo_com_mars_rubik_test_detail.TestNullableBean?>] */ 
  }

  override fun doTestDataType17(data: List<String?>): List<String?>? {
    // com.mars.component.detail.test.TestDataTypeTask.doTestDataType17
    // - parameters:
    // --- data : kotlin.collections.List<kotlin.String?>
    // - resultType:
    // --- kotlin.collections.List<kotlin.String?>
    return TestDataTypeTask().doTestDataType17(
      data /* -> NO NEED TO MAPPING :[kotlin.collections.List<kotlin.String?>] */ 
    ) /* -> NO NEED TO MAPPING :[kotlin.collections.List<kotlin.String?>] */ 
  }

  override fun doTestDataType18(data: ArrayList<String?>): ArrayList<String?>? {
    // com.mars.component.detail.test.TestDataTypeTask.doTestDataType18
    // - parameters:
    // --- data : kotlin.collections.ArrayList<kotlin.String?>
    // - resultType:
    // --- kotlin.collections.ArrayList<kotlin.String?>
    return TestDataTypeTask().doTestDataType18(
      data /* -> NO NEED TO MAPPING :[kotlin.collections.ArrayList<kotlin.String?>] */ 
    ) /* -> NO NEED TO MAPPING :[kotlin.collections.ArrayList<kotlin.String?>] */ 
  }

  override fun doTestDataType19(data: ArrayList<Pair<String?, Int?>>): ArrayList<Pair<String?,
      Int?>>? {
    // com.mars.component.detail.test.TestDataTypeTask.doTestDataType19
    // - parameters:
    // --- data : kotlin.collections.ArrayList<kotlin.Pair<kotlin.String?, kotlin.Int?>>
    // - resultType:
    // --- kotlin.collections.ArrayList<kotlin.Pair<kotlin.String?, kotlin.Int?>>
    return TestDataTypeTask().doTestDataType19(
      data /* -> NO NEED TO MAPPING :[kotlin.collections.ArrayList<kotlin.Pair<kotlin.String?, kotlin.Int?>>] */ 
    ) /* -> NO NEED TO MAPPING :[kotlin.collections.ArrayList<kotlin.Pair<kotlin.String?, kotlin.Int?>>] */ 
  }

  override fun doTestDataType20(media: Pair<Long?, String?>): List<String>? {
    // com.mars.component.detail.test.TestDataTypeTask.doTestDataType20
    // - parameters:
    // --- media : kotlin.Pair<kotlin.Long?, kotlin.String?>
    // - resultType:
    // --- kotlin.collections.List<kotlin.String>?
    return TestDataTypeTask().doTestDataType20(
      media /* -> NO NEED TO MAPPING :[kotlin.Pair<kotlin.Long?, kotlin.String?>] */ 
    ) /* -> NO NEED TO MAPPING :[kotlin.collections.List<kotlin.String>?] */ 
  }

  override fun doTestDataType21(data: List<TestNullableBeanCtx>): List<TestNullableBeanCtx>? {
    // com.mars.component.detail.test.TestDataTypeTask.doTestDataType21
    // - parameters:
    // --- data : kotlin.collections.List<com.mars.component.detail.value.TestNullableBean>
    // - resultType:
    // --- kotlin.collections.List<com.mars.component.detail.value.TestNullableBean>
    return TestDataTypeTask().doTestDataType21(
      data.toTypeOfT() /* -> TO ORIGINAL TYPE :[kotlin.collections.List<com.mars.component.detail.value.TestNullableBean>] */ 
    ).toTypeOfT() /* -> TO CONTEXT TYPE :[kotlin.collections.List<rubik.generate.context.demo_com_mars_rubik_test_detail.TestNullableBean>] */ 
  }

  override fun doTestDataType22(data: List<TestNullableBeanCtx>): List<TestNullableBeanCtx>? {
    // com.mars.component.detail.test.TestDataTypeTask.doTestDataType22
    // - parameters:
    // --- data : kotlin.collections.List<com.mars.component.detail.value.TestNullableBean>
    // - resultType:
    // --- kotlin.collections.List<com.mars.component.detail.value.TestNullableBean>
    return TestDataTypeTask().doTestDataType22(
      data.toTypeOfT() /* -> TO ORIGINAL TYPE :[kotlin.collections.List<com.mars.component.detail.value.TestNullableBean>] */ 
    ).toTypeOfT() /* -> TO CONTEXT TYPE :[kotlin.collections.List<rubik.generate.context.demo_com_mars_rubik_test_detail.TestNullableBean>] */ 
  }

  override fun doTestDataType23(data: Array<TestNullableBeanCtx>): Array<TestNullableBeanCtx>? {
    // com.mars.component.detail.test.TestDataTypeTask.doTestDataType23
    // - parameters:
    // --- data : kotlin.Array<com.mars.component.detail.value.TestNullableBean>
    // - resultType:
    // --- kotlin.Array<com.mars.component.detail.value.TestNullableBean>
    return TestDataTypeTask().doTestDataType23(
      data.toTypeOfT() /* -> TO ORIGINAL TYPE :[kotlin.Array<com.mars.component.detail.value.TestNullableBean>] */ 
    ).toTypeOfT() /* -> TO CONTEXT TYPE :[kotlin.Array<rubik.generate.context.demo_com_mars_rubik_test_detail.TestNullableBean>] */ 
  }

  override fun doTestDataType24(data: Map<String, TestNullableBeanCtx>): Map<String,
      TestNullableBeanCtx>? {
    // com.mars.component.detail.test.TestDataTypeTask.doTestDataType24
    // - parameters:
    // --- data : kotlin.collections.Map<kotlin.String, com.mars.component.detail.value.TestNullableBean>
    // - resultType:
    // --- kotlin.collections.Map<kotlin.String, com.mars.component.detail.value.TestNullableBean>
    return TestDataTypeTask().doTestDataType24(
      data.toTypeOfT() /* -> TO ORIGINAL TYPE :[kotlin.collections.Map<kotlin.String, com.mars.component.detail.value.TestNullableBean>] */ 
    ).toTypeOfT() /* -> TO CONTEXT TYPE :[kotlin.collections.Map<kotlin.String, rubik.generate.context.demo_com_mars_rubik_test_detail.TestNullableBean>] */ 
  }

  override fun doTestDataType25(data: Map<String, TestNullableBeanCtx>): Map<String,
      TestNullableBeanCtx>? {
    // com.mars.component.detail.test.TestDataTypeTask.doTestDataType25
    // - parameters:
    // --- data : kotlin.collections.Map<kotlin.String, com.mars.component.detail.value.TestNullableBean>
    // - resultType:
    // --- kotlin.collections.Map<kotlin.String, com.mars.component.detail.value.TestNullableBean>
    return TestDataTypeTask().doTestDataType25(
      data.toTypeOfT() /* -> TO ORIGINAL TYPE :[kotlin.collections.Map<kotlin.String, com.mars.component.detail.value.TestNullableBean>] */ 
    ).toTypeOfT() /* -> TO CONTEXT TYPE :[kotlin.collections.Map<kotlin.String, rubik.generate.context.demo_com_mars_rubik_test_detail.TestNullableBean>] */ 
  }

  override fun doTestDataType26(data: Set<TestNullableBeanCtx>): Set<TestNullableBeanCtx>? {
    // com.mars.component.detail.test.TestDataTypeTask.doTestDataType26
    // - parameters:
    // --- data : kotlin.collections.Set<com.mars.component.detail.value.TestNullableBean>
    // - resultType:
    // --- kotlin.collections.Set<com.mars.component.detail.value.TestNullableBean>
    return TestDataTypeTask().doTestDataType26(
      data.toTypeOfT() /* -> TO ORIGINAL TYPE :[kotlin.collections.Set<com.mars.component.detail.value.TestNullableBean>] */ 
    ).toTypeOfT() /* -> TO CONTEXT TYPE :[kotlin.collections.Set<rubik.generate.context.demo_com_mars_rubik_test_detail.TestNullableBean>] */ 
  }

  override fun doTestDataType27(data: Set<TestNullableBeanCtx>): Set<TestNullableBeanCtx>? {
    // com.mars.component.detail.test.TestDataTypeTask.doTestDataType27
    // - parameters:
    // --- data : kotlin.collections.Set<com.mars.component.detail.value.TestNullableBean>
    // - resultType:
    // --- kotlin.collections.Set<com.mars.component.detail.value.TestNullableBean>
    return TestDataTypeTask().doTestDataType27(
      data.toTypeOfT() /* -> TO ORIGINAL TYPE :[kotlin.collections.Set<com.mars.component.detail.value.TestNullableBean>] */ 
    ).toTypeOfT() /* -> TO CONTEXT TYPE :[kotlin.collections.Set<rubik.generate.context.demo_com_mars_rubik_test_detail.TestNullableBean>] */ 
  }

  override fun testBeanCreate(
    d1: Int?,
    d2: String?,
    routeResultTransformer: (TestCreateBeanCtx) -> Unit
  ) {
    // com.mars.component.detail.value.TestCreateBean
    // - parameters:
    // --- d1 : kotlin.Int?
    // --- d2 : kotlin.String?
    // - resultType:
    // --- com.mars.component.detail.value.TestCreateBean
    routeResultTransformer(TestCreateBeanOrg(
      d1 /* -> NO NEED TO MAPPING :[kotlin.Int?] */ ,
      d2 /* -> NO NEED TO MAPPING :[kotlin.String?] */ 
    ).toTypeOfT() /* -> TO CONTEXT TYPE :[rubik.generate.context.demo_com_mars_rubik_test_detail.TestCreateBean] */ )
  }

  override fun doSthInCommonInstance(objectInstance: ObjectTestCtx,
      routeResultTransformer: (TestDataBeanCtx) -> Unit) {
    // com.mars.component.detail.objekt.ObjectTest.doSthInObject
    // - resultType:
    // --- com.mars.component.detail.value.TestDataBean
    routeResultTransformer(objectInstance.mapToType(toObjectTestOrgMapping) /* -> TO ORIGINAL TYPE :[com.mars.component.detail.objekt.ObjectTest] */ .doSthInObject().toTypeOfT() /* -> TO CONTEXT TYPE :[rubik.generate.context.demo_com_mars_rubik_test_detail.TestDataBean] */ )
  }

  override fun doSthInCommonInstanceParameter(
    objectInstance: ObjectTestCtx,
    v1: String,
    v2: Int?,
    v3: Int?
  ) {
    // com.mars.component.detail.objekt.ObjectTest.doSthInObject2
    // - parameters:
    // --- v1 : kotlin.String
    // --- v2 : kotlin.Int?
    // --- v3 : kotlin.Int?
    // - resultType:
    // --- null
    objectInstance.mapToType(toObjectTestOrgMapping) /* -> TO ORIGINAL TYPE :[com.mars.component.detail.objekt.ObjectTest] */ .doSthInObject2(
      v1 /* -> NO NEED TO MAPPING :[kotlin.String] */ ,
      v2 /* -> NO NEED TO MAPPING :[kotlin.Int?] */ ,
      v3 /* -> NO NEED TO MAPPING :[kotlin.Int?] */ 
    )
  }

  override fun doSthCreateCommonInstance(objectInstance: ObjectTestCreateCtx,
      routeResultTransformer: (TestDataBeanCtx) -> Unit) {
    // com.mars.component.detail.objekt.ObjectTestCreate.doSthInCreateObject
    // - resultType:
    // --- com.mars.component.detail.value.TestDataBean
    routeResultTransformer(objectInstance.mapToType(toObjectTestCreateOrgMapping) /* -> TO ORIGINAL TYPE :[com.mars.component.detail.objekt.ObjectTestCreate] */ .doSthInCreateObject().toTypeOfT() /* -> TO CONTEXT TYPE :[rubik.generate.context.demo_com_mars_rubik_test_detail.TestDataBean] */ )
  }

  override fun getAOtherCommonInstance(i: Int, routeResultTransformer: (ObjectTestCtx) -> Unit) {
    // com.mars.component.detail.objekt.ObjectTestKt.getAOtherObjectTest
    // - parameters:
    // --- i : kotlin.Int
    // - resultType:
    // --- com.mars.component.detail.objekt.ObjectTest
    routeResultTransformer(com.mars.component.detail.objekt.getAOtherObjectTest(
      i /* -> NO NEED TO MAPPING :[kotlin.Int] */ 
    ).mapToType(toObjectTestCtxMapping) /* -> TO CONTEXT TYPE :[rubik.generate.context.demo_com_mars_rubik_test_detail.objekt.ObjectTest] */ )
  }

  override fun sendBackCommonInstance(obj: ObjectTestCtx) {
    // com.mars.component.detail.objekt.ObjectTestKt.senBackObjectTest
    // - parameters:
    // --- obj : com.mars.component.detail.objekt.ObjectTest
    // - resultType:
    // --- null
    com.mars.component.detail.objekt.senBackObjectTest(
      obj.mapToType(toObjectTestOrgMapping) /* -> TO ORIGINAL TYPE :[com.mars.component.detail.objekt.ObjectTest] */ 
    )
  }

  override fun getAOtherCommonInstanceNull(i: Int, routeResultTransformer: ((ObjectTestCtx?) ->
      Unit)?) {
    // com.mars.component.detail.objekt.ObjectTestKt.getAOtherObjectTestNull
    // - parameters:
    // --- i : kotlin.Int
    // - resultType:
    // --- com.mars.component.detail.objekt.ObjectTest?
    if (null != routeResultTransformer) {
      routeResultTransformer(com.mars.component.detail.objekt.getAOtherObjectTestNull(
        i /* -> NO NEED TO MAPPING :[kotlin.Int] */ 
      )?.mapToType(toNullableObjectTestCtxMapping) /* -> TO CONTEXT TYPE :[rubik.generate.context.demo_com_mars_rubik_test_detail.objekt.ObjectTest?] */ )}
  }

  override fun sendBackCommonInstanceNull(obj: ObjectTestCtx?) {
    // com.mars.component.detail.objekt.ObjectTestKt.senBackObjectTestNull
    // - parameters:
    // --- obj : com.mars.component.detail.objekt.ObjectTest?
    // - resultType:
    // --- null
    com.mars.component.detail.objekt.senBackObjectTestNull(
      obj?.mapToType(toNullableObjectTestOrgMapping) /* -> TO ORIGINAL TYPE :[com.mars.component.detail.objekt.ObjectTest?] */ 
    )
  }

  override fun doSthExt(
    i: Int,
    s: String,
    routeResultTransformer: (Int) -> Unit
  ) {
    // com.mars.component.detail.api.ApisExtKt.doSthExt
    // - parameters:
    // --- s : kotlin.String
    // --- i : kotlin.Int
    // - resultType:
    // --- kotlin.Int
    routeResultTransformer(com.mars.component.detail.api.doSthExt(
      s /* -> NO NEED TO MAPPING :[kotlin.String] */ ,
      i /* -> NO NEED TO MAPPING :[kotlin.Int] */ 
    ) /* -> NO NEED TO MAPPING :[kotlin.Int] */ )
  }

  override fun doSthCompanion(
    i: Int,
    j: String,
    k: Long,
    routeResultTransformer: (String) -> Unit
  ) {
    // com.mars.component.detail.api.AipsInCompanion.DetailCompanion.doSthCompanion
    // - parameters:
    // --- i : kotlin.Int
    // --- j : kotlin.String
    // --- k : kotlin.Long
    // - resultType:
    // --- kotlin.String
    routeResultTransformer(AipsInCompanion.DetailCompanion.doSthCompanion(
      i /* -> NO NEED TO MAPPING :[kotlin.Int] */ ,
      j /* -> NO NEED TO MAPPING :[kotlin.String] */ ,
      k /* -> NO NEED TO MAPPING :[kotlin.Long] */ 
    ) /* -> NO NEED TO MAPPING :[kotlin.String] */ )
  }

  override fun propertyCompanion(routeResultTransformer: (String) -> Unit) {
    // com.mars.component.detail.api.AipsInCompanion.propertyCompanion
    // - resultType:
    // --- kotlin.String
    routeResultTransformer(com.mars.component.detail.api.AipsInCompanion.propertyCompanion /* -> NO NEED TO MAPPING :[kotlin.String] */ )
  }

  override fun doSthHOFCompanion(lambdaArg0: Int, routeResultTransformer: (Int) -> Unit) {
    // com.mars.component.detail.api.AipsInCompanion.doSthHOFCompanion
    // - parameters:
    // --- lambdaArg0 : kotlin.Int
    // - resultType:
    // --- kotlin.Int
    routeResultTransformer(com.mars.component.detail.api.AipsInCompanion.doSthHOFCompanion(
      lambdaArg0 /* -> NO NEED TO MAPPING :[kotlin.Int] */ 
    ) /* -> NO NEED TO MAPPING :[kotlin.Int] */ )
  }

  override fun doSthHof(
    lambdaArg0: Int,
    lambdaArg1: String,
    lambdaArg2: TestDataBeanCtx
  ): Int? {
    // com.mars.component.detail.api.Apis.doSthHOF
    // - parameters:
    // --- lambdaArg0 : kotlin.Int
    // --- lambdaArg1 : kotlin.String
    // --- lambdaArg2 : com.mars.component.detail.value.TestDataBean
    // - resultType:
    // --- kotlin.Int
    return Apis().doSthHOF(
      lambdaArg0 /* -> NO NEED TO MAPPING :[kotlin.Int] */ ,
      lambdaArg1 /* -> NO NEED TO MAPPING :[kotlin.String] */ ,
      lambdaArg2.toTypeOfT() /* -> TO ORIGINAL TYPE :[com.mars.component.detail.value.TestDataBean] */ 
    ) /* -> NO NEED TO MAPPING :[kotlin.Int] */ 
  }

  override fun propertyProperty(routeResultTransformer: (String) -> Unit) {
    // com.mars.component.detail.api.Apis.property
    // - resultType:
    // --- kotlin.String
    routeResultTransformer(Apis().property /* -> NO NEED TO MAPPING :[kotlin.String] */ )
  }

  override fun doSth() {
    // com.mars.component.detail.api.Apis.doSth
    // - resultType:
    // --- null
    Apis().doSth()
  }

  override fun viewGet(context: Context, routeResultTransformer: ((View?) -> Unit)?) {
    // com.mars.component.detail.api.Apis.getView
    // - parameters:
    // --- context : android.content.Context
    // - resultType:
    // --- android.view.View?
    if (null != routeResultTransformer) {
      routeResultTransformer(Apis().getView(
        context /* -> NO NEED TO MAPPING :[android.content.Context] */ 
      ) /* -> NO NEED TO MAPPING :[android.view.View?] */ )}
  }

  override fun sthIdAName(
    id: String,
    name: String,
    code1: String,
    code2: String,
    routeResultTransformer: (String) -> Unit
  ) {
    // com.mars.component.detail.api.Apis.getSth
    // - parameters:
    // --- id : kotlin.String
    // --- name : kotlin.String
    // --- code1 : kotlin.String
    // --- code2 : kotlin.String
    // - resultType:
    // --- kotlin.String
    routeResultTransformer(Apis().getSth(
      id /* -> NO NEED TO MAPPING :[kotlin.String] */ ,
      name /* -> NO NEED TO MAPPING :[kotlin.String] */ ,
      code1 /* -> NO NEED TO MAPPING :[kotlin.String] */ ,
      code2 /* -> NO NEED TO MAPPING :[kotlin.String] */ 
    ) /* -> NO NEED TO MAPPING :[kotlin.String] */ )
  }

  override fun doSthVararg(no: Int, vararg varargString: String) {
    // com.mars.component.detail.api.Apis.doSthVararg
    // - parameters:
    // --- no : kotlin.Int
    // --- varargString : vararg kotlin.Array<kotlin.String>
    // - resultType:
    // --- null
    Apis().doSthVararg(
      no /* -> NO NEED TO MAPPING :[kotlin.Int] */ ,
      *varargString /* -> NO NEED TO MAPPING :[kotlin.Array<kotlin.String>] */ 
    )
  }

  override fun doSthVarargHof(no: Int, vararg varargString: Function5<Activity, ViewModelStoreOwner,
      LifecycleOwner, LifecycleOwner?, LifecycleOwner?, LifecycleOwner?>) {
    // com.mars.component.detail.api.Apis.doSthVarargHof
    // - parameters:
    // --- no : kotlin.Int
    // --- varargString : vararg kotlin.Array<kotlin.Function5<android.app.Activity, androidx.lifecycle.ViewModelStoreOwner, androidx.lifecycle.LifecycleOwner, androidx.lifecycle.LifecycleOwner?, androidx.lifecycle.LifecycleOwner?, androidx.lifecycle.LifecycleOwner?>>
    // - resultType:
    // --- null
    Apis().doSthVarargHof(
      no /* -> NO NEED TO MAPPING :[kotlin.Int] */ ,
      *varargString /* -> NO NEED TO MAPPING :[kotlin.Array<kotlin.Function5<android.app.Activity, androidx.lifecycle.ViewModelStoreOwner, androidx.lifecycle.LifecycleOwner, androidx.lifecycle.LifecycleOwner?, androidx.lifecycle.LifecycleOwner?, androidx.lifecycle.LifecycleOwner?>>] */ 
    )
  }

  override fun doSthBean(a1: TestDataBeanCtx, routeResultTransformer: (TestListBeanCtx) -> Unit) {
    // com.mars.component.detail.api.Apis.doSthBean
    // - parameters:
    // --- a1 : com.mars.component.detail.value.TestDataBean
    // - resultType:
    // --- com.mars.component.detail.value.TestListBean
    routeResultTransformer(Apis().doSthBean(
      a1.toTypeOfT() /* -> TO ORIGINAL TYPE :[com.mars.component.detail.value.TestDataBean] */ 
    ).toTypeOfT() /* -> TO CONTEXT TYPE :[rubik.generate.context.demo_com_mars_rubik_test_detail.TestListBean] */ )
  }

  override fun doSthUriCrash(name: String, code: String) {
    // com.mars.component.detail.api.Apis.doSthUriCrash3
    // - parameters:
    // --- name : kotlin.String
    // --- code : kotlin.String
    // - resultType:
    // --- null
    Apis().doSthUriCrash3(
      name /* -> NO NEED TO MAPPING :[kotlin.String] */ ,
      code /* -> NO NEED TO MAPPING :[kotlin.String] */ 
    )
  }

  override fun doSthUriCrashByNameCodeVersion(
    name: String,
    code: String,
    version: String
  ) {
    // com.mars.component.detail.api.Apis.doSthUriCrash4
    // - parameters:
    // --- name : kotlin.String
    // --- code : kotlin.String
    // --- version : kotlin.String
    // - resultType:
    // --- null
    Apis().doSthUriCrash4(
      name /* -> NO NEED TO MAPPING :[kotlin.String] */ ,
      code /* -> NO NEED TO MAPPING :[kotlin.String] */ ,
      version /* -> NO NEED TO MAPPING :[kotlin.String] */ 
    )
  }

  override fun doSthMappingBean(a1: TestDataMappingBeanCtx,
      routeResultTransformer: (TestDataMappingBeanCtx) -> Unit) {
    // com.mars.component.detail.api.Apis.doSthMappingBean
    // - parameters:
    // --- a1 : com.mars.component.detail.value.mapping.TestDataMappingBean
    // - resultType:
    // --- com.mars.component.detail.value.mapping.TestDataMappingBean
    routeResultTransformer(Apis().doSthMappingBean(
      a1.mapToType(toTestDataMappingBeanOrgMapping) /* -> TO ORIGINAL TYPE :[com.mars.component.detail.value.mapping.TestDataMappingBean] */ 
    ).mapToType(toTestDataMappingBeanCtxMapping) /* -> TO CONTEXT TYPE :[rubik.generate.context.demo_com_mars_rubik_test_detail.TestDataMappingBean] */ )
  }

  override fun doSthTestNestDataMappingBean(bean: TestNestDataMappingBeanCtx,
      routeResultTransformer: (TestNestDataMappingBeanCtx) -> Unit) {
    // com.mars.component.detail.api.Apis.doSthTestNestDataMappingBean
    // - parameters:
    // --- bean : com.mars.component.detail.value.mapping.TestNestDataMappingBean
    // - resultType:
    // --- com.mars.component.detail.value.mapping.TestNestDataMappingBean
    routeResultTransformer(Apis().doSthTestNestDataMappingBean(
      bean.mapToType(toTestNestDataMappingBeanOrgMapping) /* -> TO ORIGINAL TYPE :[com.mars.component.detail.value.mapping.TestNestDataMappingBean] */ 
    ).mapToType(toTestNestDataMappingBeanCtxMapping) /* -> TO CONTEXT TYPE :[rubik.generate.context.demo_com_mars_rubik_test_detail.TestNestDataMappingBean] */ )
  }

  override fun doSthAsyncHOF(hofCallback: (String, TestDataBeanCtx) -> Unit) {
    // com.mars.component.detail.api.ApisAsyncReturn.doSthAsyncHOF
    // - parameters:
    // --- hof : kotlin.Function2<kotlin.String, com.mars.component.detail.value.TestDataBean, kotlin.Unit>
    // - resultType:
    // --- null
    val hofCallbackCallbackTransformer: (Any?, Any?) -> Unit = { lambdaArg0, lambdaArg1 -> 
      hofCallback(
        lambdaArg0.castToTypeOfT() /* -> NO NEED TO MAPPING :[kotlin.String] */ ,
        lambdaArg1.toTypeOfT() /* -> TO CONTEXT TYPE :[rubik.generate.context.demo_com_mars_rubik_test_detail.TestDataBean] */ 
      )}
    ApisAsyncReturn().doSthAsyncHOF(
      hofCallbackCallbackTransformer
    )
  }

  override fun doSthAsyncHOFNullable(
    hof2xxCallback: Function2<String, TestDataBeanCtx, Unit>?,
    hof4xxCallback: Function3<String, Int, TestDataBeanCtx, TestDataBeanCtx?>?,
    hofx1resCallback: ((String, TestDataBeanCtx) -> Unit)?
  ) {
    // com.mars.component.detail.api.ApisAsyncReturn.doSthAsyncHOFNullable
    // - parameters:
    // --- hofx1res : kotlin.Function2<kotlin.String, com.mars.component.detail.value.TestDataBean, kotlin.Unit>?
    // --- hof2xx : kotlin.Function2<kotlin.String, com.mars.component.detail.value.TestDataBean, kotlin.Unit>?
    // --- hof4xx : kotlin.Function3<kotlin.String, kotlin.Int, com.mars.component.detail.value.TestDataBean, com.mars.component.detail.value.TestDataBean?>?
    // - resultType:
    // --- null
    val hofx1resCallbackCallbackTransformer: (Any?, Any?) -> Unit = { lambdaArg0, lambdaArg1 -> 
      hofx1resCallback?.invoke(
        lambdaArg0.castToTypeOfT() /* -> NO NEED TO MAPPING :[kotlin.String] */ ,
        lambdaArg1.toTypeOfT() /* -> TO CONTEXT TYPE :[rubik.generate.context.demo_com_mars_rubik_test_detail.TestDataBean] */ 
      )}
    val hof2xxCallbackCallbackTransformer: (Any?, Any?) -> Unit = { lambdaArg0, lambdaArg1 -> 
      hof2xxCallback?.invoke(
        lambdaArg0.castToTypeOfT() /* -> NO NEED TO MAPPING :[kotlin.String] */ ,
        lambdaArg1.toTypeOfT() /* -> TO CONTEXT TYPE :[rubik.generate.context.demo_com_mars_rubik_test_detail.TestDataBean] */ 
      )}
    val hof4xxCallbackCallbackTransformer: (Any?, Any?, Any?) -> TestDataBeanOrg? = { lambdaArg0, lambdaArg1, lambdaArg2 -> 
      hof4xxCallback?.invoke(
        lambdaArg0.castToTypeOfT() /* -> NO NEED TO MAPPING :[kotlin.String] */ ,
        lambdaArg1.castToTypeOfT() /* -> NO NEED TO MAPPING :[kotlin.Int] */ ,
        lambdaArg2.toTypeOfT() /* -> TO CONTEXT TYPE :[rubik.generate.context.demo_com_mars_rubik_test_detail.TestDataBean] */ 
      )?.toTypeOfT() /* -> TO ORIGINAL TYPE :[com.mars.component.detail.value.TestDataBean?] */ }
    ApisAsyncReturn().doSthAsyncHOFNullable(
      hofx1resCallbackCallbackTransformer,
      hof2xxCallbackCallbackTransformer,
      hof4xxCallbackCallbackTransformer
    )
  }

  override fun doSthAsync2HOF(hofCallback: (String, Int) -> Unit, hof2Callback: (String, Int) ->
      Unit) {
    // com.mars.component.detail.api.ApisAsyncReturn.doSthAsyncHOF
    // - parameters:
    // --- hof : kotlin.Function2<kotlin.String, kotlin.Int, kotlin.Unit>
    // --- hof2 : kotlin.Function2<kotlin.String, kotlin.Int, kotlin.Unit>
    // - resultType:
    // --- null
    ApisAsyncReturn().doSthAsyncHOF(
      hofCallback /* -> NO NEED TO MAPPING :[kotlin.Function2<kotlin.String, kotlin.Int, kotlin.Unit>] */ ,
      hof2Callback /* -> NO NEED TO MAPPING :[kotlin.Function2<kotlin.String, kotlin.Int, kotlin.Unit>] */ 
    )
  }

  override fun doSthAsyncOpen(uriParameter: String, onCallCallback: ((String?, Int) -> Unit)?) {
    // com.mars.component.detail.api.ApisAsyncReturn.doSthAsyncOpen
    // - parameters:
    // --- uri : kotlin.String
    // --- results : com.mars.component.detail.api.Callback?
    // - resultType:
    // --- null
    val resultsParameterCallbackTransformer = object : Callback() {
      override fun onCall(v1: String?, v2: Int) {
        onCallCallback?.invoke(
          v1 /* -> NO NEED TO MAPPING :[kotlin.String?] */ ,
          v2 /* -> NO NEED TO MAPPING :[kotlin.Int] */ 
        )}
    }
    ApisAsyncReturn().doSthAsyncOpen(
      uriParameter /* -> NO NEED TO MAPPING :[kotlin.String] */ ,
      resultsParameterCallbackTransformer
    )
  }

  override fun doSthAsyncInterface(onCallCallback: (String?, Int) -> Unit) {
    // com.mars.component.detail.api.ApisAsyncReturn.doSthAsyncInterface
    // - parameters:
    // --- onResult : com.mars.component.detail.api.Callbackable
    // - resultType:
    // --- null
    val onResultCallbackTransformer = object : Callbackable {
      override fun onCall(v1: String?, v2: Int) {
        onCallCallback(
          v1 /* -> NO NEED TO MAPPING :[kotlin.String?] */ ,
          v2 /* -> NO NEED TO MAPPING :[kotlin.Int] */ 
        )}
    }
    ApisAsyncReturn().doSthAsyncInterface(
      onResultCallbackTransformer
    )
  }

  override fun doSthAsync3Interface(
    onCallCallback: ((String?, Int) -> Unit)?,
    onCall1Callback: (String?, Int) -> Unit,
    onCall2Callback: (TestDataBeanCtx?) -> Unit
  ) {
    // com.mars.component.detail.api.ApisAsyncReturn.doSthAsync2Interface
    // - parameters:
    // --- onResult : com.mars.component.detail.api.Callbackable?
    // --- onResult2 : com.mars.component.detail.api.Callbackable
    // --- onResult3 : com.mars.component.detail.api.BeanCallbackable
    // - resultType:
    // --- null
    val onResultCallbackTransformer = object : Callbackable {
      override fun onCall(v1: String?, v2: Int) {
        onCallCallback?.invoke(
          v1 /* -> NO NEED TO MAPPING :[kotlin.String?] */ ,
          v2 /* -> NO NEED TO MAPPING :[kotlin.Int] */ 
        )}
    }
    val onResult2CallbackTransformer = object : Callbackable {
      override fun onCall(v1: String?, v2: Int) {
        onCall1Callback(
          v1 /* -> NO NEED TO MAPPING :[kotlin.String?] */ ,
          v2 /* -> NO NEED TO MAPPING :[kotlin.Int] */ 
        )}
    }
    val onResult3CallbackTransformer = object : BeanCallbackable {
      override fun onCall(v: TestDataBeanOrg?) {
        onCall2Callback(
          v?.toTypeOfT() /* -> TO CONTEXT TYPE :[rubik.generate.context.demo_com_mars_rubik_test_detail.TestDataBean?] */ 
        )}
    }
    ApisAsyncReturn().doSthAsync2Interface(
      onResultCallbackTransformer,
      onResult2CallbackTransformer,
      onResult3CallbackTransformer
    )
  }

  override fun doSthAsyncInterfaceMultiFunc(
    startCallback: (String?, Int) -> Unit,
    dataCallback: (TestDataBeanCtx?) -> Unit,
    stopCallback: (String?, Int) -> Unit
  ) {
    // com.mars.component.detail.api.ApisAsyncReturn.doSthAsyncInterfaceMultiFunc
    // - parameters:
    // --- onResult : com.mars.component.detail.api.MultiCallback
    // - resultType:
    // --- null
    val onResultCallbackTransformer = object : MultiCallback {
      override fun start(v1: String?, v2: Int) {
        startCallback(
          v1 /* -> NO NEED TO MAPPING :[kotlin.String?] */ ,
          v2 /* -> NO NEED TO MAPPING :[kotlin.Int] */ 
        )}
      override fun data(v: TestDataBeanOrg?) {
        dataCallback(
          v?.toTypeOfT() /* -> TO CONTEXT TYPE :[rubik.generate.context.demo_com_mars_rubik_test_detail.TestDataBean?] */ 
        )}
      override fun stop(v1: String?, v2: Int) {
        stopCallback(
          v1 /* -> NO NEED TO MAPPING :[kotlin.String?] */ ,
          v2 /* -> NO NEED TO MAPPING :[kotlin.Int] */ 
        )}
    }
    ApisAsyncReturn().doSthAsyncInterfaceMultiFunc(
      onResultCallbackTransformer
    )
  }

  override fun doSthHOFTop(lambdaArg0: Unit, routeResultTransformer: (Unit) -> Unit) {
    // com.mars.component.detail.api.AipsInTopKt.doSthHOFTop
    // - parameters:
    // --- lambdaArg0 : kotlin.Unit
    // - resultType:
    // --- kotlin.Unit
    routeResultTransformer(com.mars.component.detail.api.doSthHOFTop(
      lambdaArg0 /* -> NO NEED TO MAPPING :[kotlin.Unit] */ 
    ) /* -> NO NEED TO MAPPING :[kotlin.Unit] */ )
  }

  override fun propertyTop(routeResultTransformer: (String) -> Unit) {
    // com.mars.component.detail.api.AipsInTopKt.propertyTop
    // - resultType:
    // --- kotlin.String
    routeResultTransformer(com.mars.component.detail.api.propertyTop /* -> NO NEED TO MAPPING :[kotlin.String] */ )
  }

  override fun doSthTop(
    ints: Array<Int>,
    li: List<Int?>,
    strings: Array<String>,
    ls: List<String>,
    beans: Array<TestDataBeanCtx>,
    lb: List<TestDataBeanCtx>,
    routeResultTransformer: (List<TestDataBeanCtx>) -> Unit
  ) {
    // com.mars.component.detail.api.AipsInTopKt.doSthTop
    // - parameters:
    // --- ints : kotlin.Array<kotlin.Int>
    // --- li : kotlin.collections.List<kotlin.Int?>
    // --- strings : kotlin.Array<kotlin.String>
    // --- ls : kotlin.collections.List<kotlin.String>
    // --- beans : kotlin.Array<com.mars.component.detail.value.TestDataBean>
    // --- lb : kotlin.collections.List<com.mars.component.detail.value.TestDataBean>
    // - resultType:
    // --- kotlin.collections.List<com.mars.component.detail.value.TestDataBean>
    routeResultTransformer(com.mars.component.detail.api.doSthTop(
      ints /* -> NO NEED TO MAPPING :[kotlin.Array<kotlin.Int>] */ ,
      li /* -> NO NEED TO MAPPING :[kotlin.collections.List<kotlin.Int?>] */ ,
      strings /* -> NO NEED TO MAPPING :[kotlin.Array<kotlin.String>] */ ,
      ls /* -> NO NEED TO MAPPING :[kotlin.collections.List<kotlin.String>] */ ,
      beans.toTypeOfT() /* -> TO ORIGINAL TYPE :[kotlin.Array<com.mars.component.detail.value.TestDataBean>] */ ,
      lb.toTypeOfT() /* -> TO ORIGINAL TYPE :[kotlin.collections.List<com.mars.component.detail.value.TestDataBean>] */ 
    ).toTypeOfT() /* -> TO CONTEXT TYPE :[kotlin.collections.List<rubik.generate.context.demo_com_mars_rubik_test_detail.TestDataBean>] */ )
  }

  override fun getFilesMeta(
    context: Context?,
    pathParameter: String?,
    onResultCallback: (Long, String?) -> Unit
  ) {
    // com.mars.component.detail.api.ApisBadCase.getFilesMeta
    // - parameters:
    // --- context : android.content.Context?
    // --- path : kotlin.String?
    // --- callback : com.mars.component.detail.api.GetFileMetaCallback
    // - resultType:
    // --- null
    val callbackCallbackTransformer = object : GetFileMetaCallback {
      override fun onResult(fsid: Long, pathParameter: String?) {
        onResultCallback(
          fsid /* -> NO NEED TO MAPPING :[kotlin.Long] */ ,
          pathParameter /* -> NO NEED TO MAPPING :[kotlin.String?] */ 
        )}
    }
    ApisBadCase().getFilesMeta(
      context /* -> NO NEED TO MAPPING :[android.content.Context?] */ ,
      pathParameter /* -> NO NEED TO MAPPING :[kotlin.String?] */ ,
      callbackCallbackTransformer
    )
  }

  override fun enterpriseBusinessAllocateTicket(
    context: Context,
    shareId: Long,
    count: Int,
    packetType: Int,
    routeResultTransformer: ((LiveData<List<String>>?) -> Unit)?
  ) {
    // com.mars.component.detail.api.ApisBadCase.allocateTicket
    // - parameters:
    // --- context : android.content.Context
    // --- shareId : kotlin.Long
    // --- count : kotlin.Int
    // --- packetType : kotlin.Int
    // - resultType:
    // --- androidx.lifecycle.LiveData<kotlin.collections.List<kotlin.String>>?
    if (null != routeResultTransformer) {
      routeResultTransformer(ApisBadCase().allocateTicket(
        context /* -> NO NEED TO MAPPING :[android.content.Context] */ ,
        shareId /* -> NO NEED TO MAPPING :[kotlin.Long] */ ,
        count /* -> NO NEED TO MAPPING :[kotlin.Int] */ ,
        packetType /* -> NO NEED TO MAPPING :[kotlin.Int] */ 
      ) /* -> NO NEED TO MAPPING :[androidx.lifecycle.LiveData<kotlin.collections.List<kotlin.String>>?] */ )}
  }

  override fun doSthProvideInstanceByFunc() {
    // com.mars.component.detail.api.Task.doSthProvideObject
    // - resultType:
    // --- null
    com.mars.component.detail.api.provideTask() /* -> NO NEED TO MAPPING :[com.mars.component.detail.api.Task] */ .doSthProvideObject()
  }

  override fun doSthProvideInstanceByFunc2() {
    // com.mars.component.detail.api.Task.doSthProvideObject2
    // - resultType:
    // --- null
    com.mars.component.detail.api.provideTask() /* -> NO NEED TO MAPPING :[com.mars.component.detail.api.Task] */ .doSthProvideObject2()
  }

  override fun doSthProvideInstanceByParameterFunc(
    rubikInstanceValue: String,
    rubikInstanceV0: Int?,
    v1: String,
    v2: Int?,
    v3: Int?
  ) {
    // com.mars.component.detail.api.Task.doSthProvideObject2
    // - parameters:
    // --- v1 : kotlin.String
    // --- v2 : kotlin.Int?
    // --- v3 : kotlin.Int?
    // - resultType:
    // --- null
    com.mars.component.detail.api.provideTask2(
      rubikInstanceValue /* -> NO NEED TO MAPPING :[kotlin.String] */ ,
      rubikInstanceV0 /* -> NO NEED TO MAPPING :[kotlin.Int?] */ 
    ) /* -> NO NEED TO MAPPING :[com.mars.component.detail.api.Task] */ .doSthProvideObject2(
      v1 /* -> NO NEED TO MAPPING :[kotlin.String] */ ,
      v2 /* -> NO NEED TO MAPPING :[kotlin.Int?] */ ,
      v3 /* -> NO NEED TO MAPPING :[kotlin.Int?] */ 
    )
  }

  override fun doSthProvideInstanceByConstructor(
    rubikInstanceValue: String,
    v1: String,
    v2: Int?,
    v3: Int?
  ) {
    // com.mars.component.detail.api.Task.doSthProvideObject3
    // - parameters:
    // --- v1 : kotlin.String
    // --- v2 : kotlin.Int?
    // --- v3 : kotlin.Int?
    // - resultType:
    // --- null
    Task(
      rubikInstanceValue /* -> NO NEED TO MAPPING :[kotlin.String] */ 
    ) /* -> NO NEED TO MAPPING :[com.mars.component.detail.api.Task] */ .doSthProvideObject3(
      v1 /* -> NO NEED TO MAPPING :[kotlin.String] */ ,
      v2 /* -> NO NEED TO MAPPING :[kotlin.Int?] */ ,
      v3 /* -> NO NEED TO MAPPING :[kotlin.Int?] */ 
    )
  }

  override fun doSthResultReceiver(resultParameter: ResultReceiver,
      routeResultTransformer: (ResultReceiver) -> Unit) {
    // com.mars.component.detail.api.ApisWithResultReceiver.doSthResultReceiver
    // - parameters:
    // --- result : android.os.ResultReceiver
    // - resultType:
    // --- android.os.ResultReceiver
    routeResultTransformer(ApisWithResultReceiver().doSthResultReceiver(
      resultParameter /* -> NO NEED TO MAPPING :[android.os.ResultReceiver] */ 
    ) /* -> NO NEED TO MAPPING :[android.os.ResultReceiver] */ )
  }

  override fun liveDataGet(routeResultTransformer: (LiveData<String>) -> Unit) {
    // com.mars.component.detail.api.ApisWithLiveData.getSthLiveData
    // - resultType:
    // --- androidx.lifecycle.LiveData<kotlin.String>
    routeResultTransformer(ApisWithLiveData().getSthLiveData() /* -> NO NEED TO MAPPING :[androidx.lifecycle.LiveData<kotlin.String>] */ )
  }

  override fun liveDataBeanGet(routeResultTransformer: (LiveData<TestDataBeanCtx>) -> Unit) {
    // com.mars.component.detail.api.ApisWithLiveData.getSthLiveDataBean
    // - resultType:
    // --- androidx.lifecycle.LiveData<com.mars.component.detail.value.TestDataBean>
    routeResultTransformer(ApisWithLiveData().getSthLiveDataBean().toTypeOfT() /* -> TO CONTEXT TYPE :[androidx.lifecycle.LiveData<rubik.generate.context.demo_com_mars_rubik_test_detail.TestDataBean>] */ )
  }

  override fun liveDataBeanListGet(routeResultTransformer: (LiveData<List<TestListBeanCtx?>>) ->
      Unit) {
    // com.mars.component.detail.api.ApisWithLiveData.getSthLiveDataBeanList
    // - resultType:
    // --- androidx.lifecycle.LiveData<kotlin.collections.List<com.mars.component.detail.value.TestListBean?>>
    routeResultTransformer(ApisWithLiveData().getSthLiveDataBeanList().toTypeOfT() /* -> TO CONTEXT TYPE :[androidx.lifecycle.LiveData<kotlin.collections.List<rubik.generate.context.demo_com_mars_rubik_test_detail.TestListBean?>>] */ )
  }

  override fun doSthCallbackObject(callback: CallbackTestInterfaceCtx) {
    // com.mars.component.detail.callback.CallbackTestInterfaceKt.doSthCallbackObject
    // - parameters:
    // --- callback : com.mars.component.detail.callback.CallbackTestInterface
    // - resultType:
    // --- null
    com.mars.component.detail.callback.doSthCallbackObject(
      callback.mapToType(toCallbackTestInterfaceOrgMapping) /* -> TO ORIGINAL TYPE :[com.mars.component.detail.callback.CallbackTestInterface] */ 
    )
  }

  override fun testNameString(): String? {
    // com.mars.component.detail.test.TestDefaultPathTask.testNameString
    // - resultType:
    // --- kotlin.String
    return TestDefaultPathTask().testNameString /* -> NO NEED TO MAPPING :[kotlin.String] */ 
  }

  override fun testName() {
    // com.mars.component.detail.test.TestDefaultPathTask.testName
    // - resultType:
    // --- null
    TestDefaultPathTask().testName()
  }

  override fun testNameUp() {
    // com.mars.component.detail.test.TestDefaultPathTask.TEST_NAME_UP
    // - resultType:
    // --- null
    TestDefaultPathTask().TEST_NAME_UP()
  }

  override fun getALotOfCommonInstance(i: Int): List<ObjectTestCtx>? {
    // com.mars.component.detail.objekt.ObjectTestKt.getALotOfObjectTest
    // - parameters:
    // --- i : kotlin.Int
    // - resultType:
    // --- kotlin.collections.List<com.mars.component.detail.objekt.ObjectTest>
    return com.mars.component.detail.objekt.getALotOfObjectTest(
      i /* -> NO NEED TO MAPPING :[kotlin.Int] */ 
    ).mapToType(toObjectTestCtxMapping) /* -> TO CONTEXT TYPE :[kotlin.collections.List<rubik.generate.context.demo_com_mars_rubik_test_detail.objekt.ObjectTest>] */ 
  }

  override fun sendBackALotOfCommonInstance(objs: Map<String, ObjectTestCtx>) {
    // com.mars.component.detail.objekt.ObjectTestKt.senBackALotOfObjectTest
    // - parameters:
    // --- objs : kotlin.collections.Map<kotlin.String, com.mars.component.detail.objekt.ObjectTest>
    // - resultType:
    // --- null
    com.mars.component.detail.objekt.senBackALotOfObjectTest(
      objs.mapToType(toObjectTestOrgMapping) /* -> TO ORIGINAL TYPE :[kotlin.collections.Map<kotlin.String, com.mars.component.detail.objekt.ObjectTest>] */ 
    )
  }

  override fun getALotOfCommonInstanceNull(i: Int): List<ObjectTestCtx?>? {
    // com.mars.component.detail.objekt.ObjectTestKt.getALotOfObjectTestNull
    // - parameters:
    // --- i : kotlin.Int
    // - resultType:
    // --- kotlin.collections.List<com.mars.component.detail.objekt.ObjectTest?>?
    return com.mars.component.detail.objekt.getALotOfObjectTestNull(
      i /* -> NO NEED TO MAPPING :[kotlin.Int] */ 
    )?.mapToType(toNullableObjectTestCtxMapping) /* -> TO CONTEXT TYPE :[kotlin.collections.List<rubik.generate.context.demo_com_mars_rubik_test_detail.objekt.ObjectTest?>?] */ 
  }

  override fun sendBackALotOfCommonInstanceNull(objs: Map<String?, ObjectTestCtx?>?) {
    // com.mars.component.detail.objekt.ObjectTestKt.senBackALotOfObjectTesNull
    // - parameters:
    // --- objs : kotlin.collections.Map<kotlin.String?, com.mars.component.detail.objekt.ObjectTest?>?
    // - resultType:
    // --- null
    com.mars.component.detail.objekt.senBackALotOfObjectTesNull(
      objs?.mapToType(toNullableObjectTestOrgMapping) /* -> TO ORIGINAL TYPE :[kotlin.collections.Map<kotlin.String?, com.mars.component.detail.objekt.ObjectTest?>?] */ 
    )
  }

  override fun fragmentPage1(): Fragment? {
    // com.mars.component.detail.ui.FirstPageFragment
    // - resultType:
    // --- com.mars.component.detail.ui.FirstPageFragment
    return FirstPageFragment() /* -> NO NEED TO MAPPING :[com.mars.component.detail.ui.FirstPageFragment] */ 
  }

  override fun objectGetDoSthInCommonIns(
    objectInstance: ObjectTestCtx,
    v1: String,
    v2: Int?,
    v3: Int?
  ) {
    // com.mars.component.detail.objekt.ObjectTest.doSthInObject3
    // - parameters:
    // --- v1 : kotlin.String
    // --- v2 : kotlin.Int?
    // --- v3 : kotlin.Int?
    // - resultType:
    // --- null
    objectInstance.mapToType(toObjectTestOrgMapping) /* -> TO ORIGINAL TYPE :[com.mars.component.detail.objekt.ObjectTest] */ .doSthInObject3(
      v1 /* -> NO NEED TO MAPPING :[kotlin.String] */ ,
      v2 /* -> NO NEED TO MAPPING :[kotlin.Int?] */ ,
      v3 /* -> NO NEED TO MAPPING :[kotlin.Int?] */ 
    )
  }

  override fun apiBigdataJsonArray(array: Array<TestDataBeanCtx>): Array<TestDataBeanCtx>? {
    // com.mars.component.detail.api.ApisBigData.getBigJsonArray
    // - parameters:
    // --- array : kotlin.Array<com.mars.component.detail.value.TestDataBean>
    // - resultType:
    // --- kotlin.Array<com.mars.component.detail.value.TestDataBean>
    return ApisBigData().getBigJsonArray(
      array.toTypeOfT() /* -> TO ORIGINAL TYPE :[kotlin.Array<com.mars.component.detail.value.TestDataBean>] */ 
    ).toTypeOfT() /* -> TO CONTEXT TYPE :[kotlin.Array<rubik.generate.context.demo_com_mars_rubik_test_detail.TestDataBean>] */ 
  }

  override fun apiBigdataParcelArray(array: Array<TestParcelizeBeanCtx>):
      Array<TestParcelizeBeanCtx>? {
    // com.mars.component.detail.api.ApisBigData.getBigParcelArray
    // - parameters:
    // --- array : kotlin.Array<com.mars.component.detail.value.TestParcelizeBean>
    // - resultType:
    // --- kotlin.Array<com.mars.component.detail.value.TestParcelizeBean>
    return ApisBigData().getBigParcelArray(
      array.toTypeOfT() /* -> TO ORIGINAL TYPE :[kotlin.Array<com.mars.component.detail.value.TestParcelizeBean>] */ 
    ).toTypeOfT() /* -> TO CONTEXT TYPE :[kotlin.Array<rubik.generate.context.demo_com_mars_rubik_test_detail.TestParcelizeBean>] */ 
  }

  override fun apiBigdataLibArray(array: Array<TestDataBeanCtx>): Array<TestDataBeanCtx>? {
    // com.mars.component.detail.api.ApisBigData.getBigLibArray
    // - parameters:
    // --- array : kotlin.Array<com.mars.component.detail.value.TestDataBean>
    // - resultType:
    // --- kotlin.Array<com.mars.component.detail.value.TestDataBean>
    return ApisBigData().getBigLibArray(
      array.toTypeOfT() /* -> TO ORIGINAL TYPE :[kotlin.Array<com.mars.component.detail.value.TestDataBean>] */ 
    ).toTypeOfT() /* -> TO CONTEXT TYPE :[kotlin.Array<rubik.generate.context.demo_com_mars_rubik_test_detail.TestDataBean>] */ 
  }

  override fun apiBigdataJsonList(list: List<TestDataBeanCtx>): List<TestDataBeanCtx>? {
    // com.mars.component.detail.api.ApisBigData.getBigJsonList
    // - parameters:
    // --- list : kotlin.collections.List<com.mars.component.detail.value.TestDataBean>
    // - resultType:
    // --- kotlin.collections.List<com.mars.component.detail.value.TestDataBean>
    return ApisBigData().getBigJsonList(
      list.toTypeOfT() /* -> TO ORIGINAL TYPE :[kotlin.collections.List<com.mars.component.detail.value.TestDataBean>] */ 
    ).toTypeOfT() /* -> TO CONTEXT TYPE :[kotlin.collections.List<rubik.generate.context.demo_com_mars_rubik_test_detail.TestDataBean>] */ 
  }

  override fun apiBigdataParcelList(list: List<TestParcelizeBeanCtx>): List<TestParcelizeBeanCtx>? {
    // com.mars.component.detail.api.ApisBigData.getBigParcelList
    // - parameters:
    // --- list : kotlin.collections.List<com.mars.component.detail.value.TestParcelizeBean>
    // - resultType:
    // --- kotlin.collections.List<com.mars.component.detail.value.TestParcelizeBean>
    return ApisBigData().getBigParcelList(
      list.toTypeOfT() /* -> TO ORIGINAL TYPE :[kotlin.collections.List<com.mars.component.detail.value.TestParcelizeBean>] */ 
    ).toTypeOfT() /* -> TO CONTEXT TYPE :[kotlin.collections.List<rubik.generate.context.demo_com_mars_rubik_test_detail.TestParcelizeBean>] */ 
  }

  override fun apiBigdataLibList(list: List<TestDataBeanCtx>): List<TestDataBeanCtx>? {
    // com.mars.component.detail.api.ApisBigData.getBigLibList
    // - parameters:
    // --- list : kotlin.collections.List<com.mars.component.detail.value.TestDataBean>
    // - resultType:
    // --- kotlin.collections.List<com.mars.component.detail.value.TestDataBean>
    return ApisBigData().getBigLibList(
      list.toTypeOfT() /* -> TO ORIGINAL TYPE :[kotlin.collections.List<com.mars.component.detail.value.TestDataBean>] */ 
    ).toTypeOfT() /* -> TO CONTEXT TYPE :[kotlin.collections.List<rubik.generate.context.demo_com_mars_rubik_test_detail.TestDataBean>] */ 
  }

  override fun apiBigdataParcelArraylist(list: List<TestParcelizeBeanCtx>):
      List<TestParcelizeBeanCtx>? {
    // com.mars.component.detail.api.ApisBigData.getBigParcelArrayList
    // - parameters:
    // --- list : kotlin.collections.List<com.mars.component.detail.value.TestParcelizeBean>
    // - resultType:
    // --- kotlin.collections.List<com.mars.component.detail.value.TestParcelizeBean>
    return ApisBigData().getBigParcelArrayList(
      list.toTypeOfT() /* -> TO ORIGINAL TYPE :[kotlin.collections.List<com.mars.component.detail.value.TestParcelizeBean>] */ 
    ).toTypeOfT() /* -> TO CONTEXT TYPE :[kotlin.collections.List<rubik.generate.context.demo_com_mars_rubik_test_detail.TestParcelizeBean>] */ 
  }

  override fun apiSerializationParcelBean(parcelBean: TestParcelizeBeanCtx?):
      TestParcelizeBeanCtx? {
    // com.mars.component.detail.api.ApiSerialization.doSthParcelBean
    // - parameters:
    // --- parcelBean : com.mars.component.detail.value.TestParcelizeBean?
    // - resultType:
    // --- com.mars.component.detail.value.TestParcelizeBean
    return ApiSerialization().doSthParcelBean(
      parcelBean?.toTypeOfT() /* -> TO ORIGINAL TYPE :[com.mars.component.detail.value.TestParcelizeBean?] */ 
    ).toTypeOfT() /* -> TO CONTEXT TYPE :[rubik.generate.context.demo_com_mars_rubik_test_detail.TestParcelizeBean] */ 
  }

  override fun apiSerializationParcelArray(parcels: Array<TestParcelizeBeanCtx>):
      Array<TestParcelizeBeanCtx>? {
    // com.mars.component.detail.api.ApiSerialization.doSthParcelArray
    // - parameters:
    // --- parcels : kotlin.Array<com.mars.component.detail.value.TestParcelizeBean>
    // - resultType:
    // --- kotlin.Array<com.mars.component.detail.value.TestParcelizeBean>
    return ApiSerialization().doSthParcelArray(
      parcels.toTypeOfT() /* -> TO ORIGINAL TYPE :[kotlin.Array<com.mars.component.detail.value.TestParcelizeBean>] */ 
    ).toTypeOfT() /* -> TO CONTEXT TYPE :[kotlin.Array<rubik.generate.context.demo_com_mars_rubik_test_detail.TestParcelizeBean>] */ 
  }

  override fun apiSerializationParcelList(parcels: List<TestParcelizeBeanCtx>):
      List<TestParcelizeBeanCtx>? {
    // com.mars.component.detail.api.ApiSerialization.doSthParcelList
    // - parameters:
    // --- parcels : kotlin.collections.List<com.mars.component.detail.value.TestParcelizeBean>
    // - resultType:
    // --- kotlin.collections.List<com.mars.component.detail.value.TestParcelizeBean>
    return ApiSerialization().doSthParcelList(
      parcels.toTypeOfT() /* -> TO ORIGINAL TYPE :[kotlin.collections.List<com.mars.component.detail.value.TestParcelizeBean>] */ 
    ).toTypeOfT() /* -> TO CONTEXT TYPE :[kotlin.collections.List<rubik.generate.context.demo_com_mars_rubik_test_detail.TestParcelizeBean>] */ 
  }

  override fun apiSerializationSerializableBean(serializableBean: TestSerializableBeanCtx):
      TestSerializableBeanCtx? {
    // com.mars.component.detail.api.ApiSerialization.doSthSerializableBean
    // - parameters:
    // --- serializableBean : com.mars.component.detail.value.TestSerializableBean
    // - resultType:
    // --- com.mars.component.detail.value.TestSerializableBean
    return ApiSerialization().doSthSerializableBean(
      serializableBean.toTypeOfT() /* -> TO ORIGINAL TYPE :[com.mars.component.detail.value.TestSerializableBean] */ 
    ).toTypeOfT() /* -> TO CONTEXT TYPE :[rubik.generate.context.demo_com_mars_rubik_test_detail.TestSerializableBean] */ 
  }

  override fun sthNavigationOnlyUri(uriParameter: String, routeResultTransformer: (String) ->
      Unit) {
    // com.mars.component.detail.api.Apis.getSthNavigationOnly
    // - parameters:
    // --- uri : kotlin.String
    // - resultType:
    // --- kotlin.String
    routeResultTransformer(Apis().getSthNavigationOnly(
      uriParameter /* -> NO NEED TO MAPPING :[kotlin.String] */ 
    ) /* -> NO NEED TO MAPPING :[kotlin.String] */ )
  }

  override fun createObjectTestInstance(value: String): ObjectTestCtx? {
    // com.mars.component.detail.objekt.ObjectTest
    // - parameters:
    // --- value : kotlin.String
    // - resultType:
    // --- com.mars.component.detail.objekt.ObjectTest
    return ObjectTestOrg(
      value /* -> NO NEED TO MAPPING :[kotlin.String] */ 
    ).mapToType(toObjectTestCtxMapping) /* -> TO CONTEXT TYPE :[rubik.generate.context.demo_com_mars_rubik_test_detail.objekt.ObjectTest] */ 
  }

  override fun createObjectTestCreateInstance(v1: Int, v2: String): ObjectTestCreateCtx? {
    // com.mars.component.detail.objekt.ObjectTestCreate
    // - parameters:
    // --- v1 : kotlin.Int
    // --- v2 : kotlin.String
    // - resultType:
    // --- com.mars.component.detail.objekt.ObjectTestCreate
    return ObjectTestCreateOrg(
      v1 /* -> NO NEED TO MAPPING :[kotlin.Int] */ ,
      v2 /* -> NO NEED TO MAPPING :[kotlin.String] */ 
    ).mapToType(toObjectTestCreateCtxMapping) /* -> TO CONTEXT TYPE :[rubik.generate.context.demo_com_mars_rubik_test_detail.objekt.ObjectTestCreate] */ 
  }

  override fun createObjectTestCreateInstanceByV1V2V3V4(
    v1: Int,
    v2: Int,
    v3: Int,
    v4: Int
  ): ObjectTestCreateCtx? {
    // com.mars.component.detail.objekt.ObjectTestCreate
    // - parameters:
    // --- v1 : kotlin.Int
    // --- v2 : kotlin.Int
    // --- v3 : kotlin.Int
    // --- v4 : kotlin.Int
    // - resultType:
    // --- com.mars.component.detail.objekt.ObjectTestCreate
    return ObjectTestCreateOrg(
      v1 /* -> NO NEED TO MAPPING :[kotlin.Int] */ ,
      v2 /* -> NO NEED TO MAPPING :[kotlin.Int] */ ,
      v3 /* -> NO NEED TO MAPPING :[kotlin.Int] */ ,
      v4 /* -> NO NEED TO MAPPING :[kotlin.Int] */ 
    ).mapToType(toObjectTestCreateCtxMapping) /* -> TO CONTEXT TYPE :[rubik.generate.context.demo_com_mars_rubik_test_detail.objekt.ObjectTestCreate] */ 
  }

  @RGenerated(
    kind = "aggregate_mappings",
    by = "rubik-kapt:1.10.0.0-K1_5-LOCAL",
    version = "0.0.1-DEV"
  )
  @Keep
  object Mappings {
    /**
     *  Mapping between :
     *  com.mars.component.detail.objekt.ObjectTest < --- > rubik.generate.context.demo_com_mars_rubik_test_detail.objekt.ObjectTest 
     */
    val toObjectTestCtxMapping: ObjectTestOrg.() -> ObjectTestCtx
      get() = { ObjectTestCtx.create(this) }

    val toObjectTestOrgMapping: ObjectTestCtx.() -> ObjectTestOrg
      get() = { this.originalObject.castToTypeOfT() }

    val toNullableObjectTestCtxMapping: ObjectTestOrg?.() -> ObjectTestCtx?
      get() = { this?.toObjectTestCtxMapping() }

    val toNullableObjectTestOrgMapping: ObjectTestCtx?.() -> ObjectTestOrg?
      get() = { this?.toObjectTestOrgMapping() }

    /**
     *  Mapping between :
     *  com.mars.component.detail.objekt.ObjectTestCreate < --- > rubik.generate.context.demo_com_mars_rubik_test_detail.objekt.ObjectTestCreate 
     */
    val toObjectTestCreateCtxMapping: ObjectTestCreateOrg.() -> ObjectTestCreateCtx
      get() = { ObjectTestCreateCtx.create(this) }

    val toObjectTestCreateOrgMapping: ObjectTestCreateCtx.() -> ObjectTestCreateOrg
      get() = { this.originalObject.castToTypeOfT() }

    /**
     *  Mapping between :
     *  com.mars.component.detail.callback.CallbackTestInterface < --- > rubik.generate.context.demo_com_mars_rubik_test_detail.callback.CallbackTestInterface 
     */
    val toCallbackTestInterfaceOrgMapping: CallbackTestInterfaceCtx.() -> CallbackTestInterfaceOrg
      get() =  {
        val mappingTarget = this
        object : CallbackTestInterfaceOrg {
          override fun callbackInt(i: Int) {
            mappingTarget.callbackInt(
              i /* -> NO NEED TO MAPPING :[kotlin.Int] */ 
            )}
          override fun callbackBean(bean: TestDataBeanOrg) {
            mappingTarget.callbackBean(
              bean.toTypeOfT() /* -> TO CONTEXT TYPE :[rubik.generate.context.demo_com_mars_rubik_test_detail.TestDataBean] */ 
            )}
          override fun callbackBeanReBean(bean: TestDataBeanOrg?) {
            mappingTarget.callbackBeanReBean(
              bean?.toTypeOfT() /* -> TO CONTEXT TYPE :[rubik.generate.context.demo_com_mars_rubik_test_detail.TestDataBean?] */ 
            )}
        }
      }

    /**
     *  Mapping between :
     *  com.mars.component.detail.value.mapping.TestNestDataMappingBean < --- > rubik.generate.context.demo_com_mars_rubik_test_detail.TestNestDataMappingBean 
     */
    val toTestNestDataMappingBeanCtxMapping: TestNestDataMappingBeanOrg.() ->
        TestNestDataMappingBeanCtx
      get() = { TestNestDataMappingBeanCtx(
        d1?.toTypeOfT() /* -> TO CONTEXT TYPE :[rubik.generate.context.demo_com_mars_rubik_test_detail.TestDataBean?] */ ,
        d2?.mapToType(toNullableTestDataMappingBeanCtxMapping) /* -> TO CONTEXT TYPE :[rubik.generate.context.demo_com_mars_rubik_test_detail.TestDataMappingBean?] */ ,
        d3?.mapToType(toNullableTestNestDataMappingBeanCtxMapping) /* -> TO CONTEXT TYPE :[rubik.generate.context.demo_com_mars_rubik_test_detail.TestNestDataMappingBean?] */ ,
        d4?.toTypeOfT() /* -> TO CONTEXT TYPE :[kotlin.collections.List<rubik.generate.context.demo_com_mars_rubik_test_detail.TestDataBean>?] */ ,
        d5?.mapToType(toTestDataMappingBeanCtxMapping) /* -> TO CONTEXT TYPE :[kotlin.collections.List<rubik.generate.context.demo_com_mars_rubik_test_detail.TestDataMappingBean>?] */ 
      ) }

    val toTestNestDataMappingBeanOrgMapping: TestNestDataMappingBeanCtx.() ->
        TestNestDataMappingBeanOrg
      get() = { TestNestDataMappingBeanOrg(
        d1?.toTypeOfT() /* -> TO ORIGINAL TYPE :[com.mars.component.detail.value.TestDataBean?] */ ,
        d2?.mapToType(toNullableTestDataMappingBeanOrgMapping) /* -> TO ORIGINAL TYPE :[com.mars.component.detail.value.mapping.TestDataMappingBean?] */ ,
        d3?.mapToType(toNullableTestNestDataMappingBeanOrgMapping) /* -> TO ORIGINAL TYPE :[com.mars.component.detail.value.mapping.TestNestDataMappingBean?] */ ,
        d4?.toTypeOfT() /* -> TO ORIGINAL TYPE :[kotlin.collections.List<com.mars.component.detail.value.TestDataBean>?] */ ,
        d5?.mapToType(toTestDataMappingBeanOrgMapping) /* -> TO ORIGINAL TYPE :[kotlin.collections.List<com.mars.component.detail.value.mapping.TestDataMappingBean>?] */ 
      ) }

    val toNullableTestNestDataMappingBeanCtxMapping: TestNestDataMappingBeanOrg?.() ->
        TestNestDataMappingBeanCtx?
      get() = { this?.toTestNestDataMappingBeanCtxMapping() }

    val toNullableTestNestDataMappingBeanOrgMapping: TestNestDataMappingBeanCtx?.() ->
        TestNestDataMappingBeanOrg?
      get() = { this?.toTestNestDataMappingBeanOrgMapping() }

    /**
     *  Mapping between :
     *  com.mars.component.detail.value.mapping.TestDataMappingBean < --- > rubik.generate.context.demo_com_mars_rubik_test_detail.TestDataMappingBean 
     */
    val toTestDataMappingBeanCtxMapping: TestDataMappingBeanOrg.() -> TestDataMappingBeanCtx
      get() = { TestDataMappingBeanCtx(
        d1 /* -> NO NEED TO MAPPING :[kotlin.Int?] */ ,
        d2 /* -> NO NEED TO MAPPING :[kotlin.String?] */ 
      ) }

    val toTestDataMappingBeanOrgMapping: TestDataMappingBeanCtx.() -> TestDataMappingBeanOrg
      get() = { TestDataMappingBeanOrg(
        d1 /* -> NO NEED TO MAPPING :[kotlin.Int?] */ ,
        d2 /* -> NO NEED TO MAPPING :[kotlin.String?] */ 
      ) }

    val toNullableTestDataMappingBeanCtxMapping: TestDataMappingBeanOrg?.() ->
        TestDataMappingBeanCtx?
      get() = { this?.toTestDataMappingBeanCtxMapping() }

    val toNullableTestDataMappingBeanOrgMapping: TestDataMappingBeanCtx?.() ->
        TestDataMappingBeanOrg?
      get() = { this?.toTestDataMappingBeanOrgMapping() }
  }

  @RGenerated(
    kind = "aggregate_companion",
    by = "rubik-kapt:1.10.0.0-K1_5-LOCAL",
    version = "0.0.1-DEV"
  )
  @Keep
  companion object : AggregateFactory() {
    override val URI: String = "demo://com.mars.rubik-test.detail"

    override val EVENT_MSGS: List<String> = listOf(
        "MY_INIT",
        "MY_DESTROY",
        "MY_CALLBACK_RES",
        "MY_CALLBACK_RES_BEAN",
        "MY_CALLBACK_BEAN",
        "LifeCycleEvent_Init",
        "LifeCycleEvent_Destroy"
        )

    override val CREATOR: Function0<Aggregatable> = {DetailAggregate()}
  }
}

/**
 * generated Rubik AggregateId.
 *
 * uri: [demo://com.mars.rubik-test.detail] 
 * originalToken: 
 * [API]api/bigdata/json-array|N|F|T|T|[IVO]getBigJsonArray|F|N|[QUY]array|Array<TestDataBean>|F|F|F[<]|[RST]B|Array<TestDataBean>[<]|ApisBigData|F[<][<]
 * [API]api/bigdata/json-list|N|F|T|T|[IVO]getBigJsonList|F|N|[QUY]list|List<TestDataBean>|F|F|F[<]|[RST]B|List<TestDataBean>[<]|ApisBigData|F[<][<]
 * [API]api/bigdata/lib-array|N|F|T|T|[IVO]getBigLibArray|F|N|[QUY]array|Array<TestDataBean>|F|F|F[<]|[RST]B|Array<TestDataBean>[<]|ApisBigData|F[<][<]
 * [API]api/bigdata/lib-list|N|F|T|T|[IVO]getBigLibList|F|N|[QUY]list|List<TestDataBean>|F|F|F[<]|[RST]B|List<TestDataBean>[<]|ApisBigData|F[<][<]
 * [API]api/bigdata/parcel-array|N|F|T|T|[IVO]getBigParcelArray|F|N|[QUY]array|Array<TestParcelizeBean>|F|F|F[<]|[RST]B|Array<TestParcelizeBean>[<]|ApisBigData|F[<][<]
 * [API]api/bigdata/parcel-arraylist|N|F|T|T|[IVO]getBigParcelArrayList|F|N|[QUY]list|List<TestParcelizeBean>|F|F|F[<]|[RST]B|List<TestParcelizeBean>[<]|ApisBigData|F[<][<]
 * [API]api/bigdata/parcel-list|N|F|T|T|[IVO]getBigParcelList|F|N|[QUY]list|List<TestParcelizeBean>|F|F|F[<]|[RST]B|List<TestParcelizeBean>[<]|ApisBigData|F[<][<]
 * [API]api/serialization/Serializable-bean|N|F|T|T|[IVO]doSthSerializableBean|F|N|[QUY]serializableBean|com.mars.component.detail.value.TestSerializableBean|F|F|F[<]|[RST]B|com.mars.component.detail.value.TestSerializableBean[<]|com.mars.component.detail.api.ApiSerialization|F[<][<]
 * [API]api/serialization/parcel-array|N|F|T|T|[IVO]doSthParcelArray|F|N|[QUY]parcels|Array<TestParcelizeBean>|F|F|F[<]|[RST]B|Array<TestParcelizeBean>[<]|com.mars.component.detail.api.ApiSerialization|F[<][<]
 * [API]api/serialization/parcel-bean|N|F|T|T|[IVO]doSthParcelBean|F|N|[QUY]parcelBean|TestParcelizeBean?|F|F|F[<]|[RST]B|TestParcelizeBean[<]|com.mars.component.detail.api.ApiSerialization|F[<][<]
 * [API]api/serialization/parcel-list|N|F|T|T|[IVO]doSthParcelList|F|N|[QUY]parcels|List<TestParcelizeBean>|F|F|F[<]|[RST]B|List<TestParcelizeBean>[<]|com.mars.component.detail.api.ApiSerializa
Download .txt
gitextract_e_w543jg/

├── LICENSE
├── README.md
├── README_en.md
├── build.gradle
├── demo/
│   ├── demo_component_detail/
│   │   ├── build.gradle
│   │   ├── consumer-rules.pro
│   │   ├── proguard-rules.pro
│   │   └── src/
│   │       └── main/
│   │           ├── AndroidManifest.xml
│   │           ├── java/
│   │           │   └── com/
│   │           │       └── mars/
│   │           │           └── component/
│   │           │               └── detail/
│   │           │                   ├── api/
│   │           │                   │   ├── AipsInCompanion.kt
│   │           │                   │   ├── AipsInTop.kt
│   │           │                   │   ├── ApiSerialization.kt
│   │           │                   │   ├── Apis.kt
│   │           │                   │   ├── ApisAsyncReturn.kt
│   │           │                   │   ├── ApisBadCase.kt
│   │           │                   │   ├── ApisBigData.kt
│   │           │                   │   ├── ApisExt.kt
│   │           │                   │   ├── ApisProvideInstance.kt
│   │           │                   │   ├── ApisWithLiveData.kt
│   │           │                   │   └── ApisWithResultReceiver.kt
│   │           │                   ├── callback/
│   │           │                   │   ├── CallbackTestDefault.kt
│   │           │                   │   └── CallbackTestInterface.kt
│   │           │                   ├── event/
│   │           │                   │   └── Events.kt
│   │           │                   ├── objekt/
│   │           │                   │   ├── ObjectTest.kt
│   │           │                   │   └── ObjectTestCteate.kt
│   │           │                   ├── test/
│   │           │                   │   ├── TestDataTypeTask.kt
│   │           │                   │   ├── TestDefaultPathTask.kt
│   │           │                   │   └── TestGenericityTask.kt
│   │           │                   ├── ui/
│   │           │                   │   ├── FirstPageActivity.kt
│   │           │                   │   ├── FirstPageFragment.kt
│   │           │                   │   └── SecondPageActivity.kt
│   │           │                   └── value/
│   │           │                       ├── TestCompanionBean.kt
│   │           │                       ├── TestCreateBean.kt
│   │           │                       ├── TestDataBean.kt
│   │           │                       ├── TestDataNotRValueBean.kt
│   │           │                       ├── TestListBean.kt
│   │           │                       ├── TestNullableBean.kt
│   │           │                       ├── TestOriginalBean.kt
│   │           │                       ├── TestParcelizeBean.kt
│   │           │                       ├── TestSerializableBean.kt
│   │           │                       └── mapping/
│   │           │                           ├── TestDataMappingBean.kt
│   │           │                           └── TestNestDataMappingBean.kt
│   │           ├── ra/
│   │           │   └── rubik/
│   │           │       └── generate/
│   │           │           └── aggregate/
│   │           │               └── demo_com_mars_rubik_test_detail/
│   │           │                   └── DetailAggregate.kt
│   │           └── res/
│   │               ├── layout/
│   │               │   └── activity_a1.xml
│   │               └── values/
│   │                   └── strings.xml
│   ├── demo_component_detail_java/
│   │   ├── build.gradle
│   │   ├── consumer-rules.pro
│   │   ├── proguard-rules.pro
│   │   └── src/
│   │       └── main/
│   │           ├── AndroidManifest.xml
│   │           ├── aggregate/
│   │           │   └── rubik/
│   │           │       └── generate/
│   │           │           └── aggregate/
│   │           │               └── demo_com_mars_rubik_test_detail_java/
│   │           │                   └── DetailJavaAggregate.kt
│   │           ├── java/
│   │           │   └── com/
│   │           │       └── mars/
│   │           │           └── component/
│   │           │               └── detail/
│   │           │                   └── java/
│   │           │                       ├── api/
│   │           │                       │   ├── Apis.java
│   │           │                       │   ├── ApisAsyncReturn.java
│   │           │                       │   ├── ApisForInstance.java
│   │           │                       │   ├── BaseApis.java
│   │           │                       │   └── callback/
│   │           │                       │       ├── Callback.java
│   │           │                       │       └── Callbackable.java
│   │           │                       ├── test/
│   │           │                       │   └── TestJavaDataType.java
│   │           │                       ├── ui/
│   │           │                       │   ├── FirstPageActivity.java
│   │           │                       │   └── SecondActivity.java
│   │           │                       └── value/
│   │           │                           └── TestJavaBean.java
│   │           └── res/
│   │               ├── layout/
│   │               │   └── activity_d1.xml
│   │               └── values/
│   │                   └── strings.xml
│   ├── demo_component_home/
│   │   ├── build.gradle
│   │   ├── consumer-rules.pro
│   │   ├── proguard-rules.pro
│   │   └── src/
│   │       └── main/
│   │           ├── AndroidManifest.xml
│   │           ├── aggregate/
│   │           │   └── rubik/
│   │           │       └── generate/
│   │           │           └── aggregate/
│   │           │               └── demo_com_mars_rubik_test_home/
│   │           │                   └── HomeAggregate.kt
│   │           ├── java/
│   │           │   └── com/
│   │           │       └── mars/
│   │           │           └── component/
│   │           │               └── home/
│   │           │                   ├── api/
│   │           │                   │   └── TestOne.kt
│   │           │                   ├── event/
│   │           │                   │   └── Events.kt
│   │           │                   ├── test/
│   │           │                   │   ├── java/
│   │           │                   │   │   ├── TestJavaInvokeBuilderTask.java
│   │           │                   │   │   ├── TestJavaInvokeFunctionTask.java
│   │           │                   │   │   └── TestJavaInvokeJavaFunctionTask.java
│   │           │                   │   └── kotlin/
│   │           │                   │       ├── TestBigData.kt
│   │           │                   │       ├── TestDataType.kt
│   │           │                   │       ├── TestKotlinInvokeActionFunctionJavaTask.kt
│   │           │                   │       ├── TestKotlinInvokeActionFunctionTask.kt
│   │           │                   │       ├── TestKotlinInvokeDSLTask.kt
│   │           │                   │       └── TestKotlinInvokeRouteFunctionTask.kt
│   │           │                   └── ui/
│   │           │                       ├── HomeActivity.kt
│   │           │                       ├── HomeFragment.kt
│   │           │                       └── java/
│   │           │                           └── JavaHomeActivity.java
│   │           └── res/
│   │               ├── layout/
│   │               │   ├── activity_java.xml
│   │               │   ├── activity_kotlin.xml
│   │               │   └── fragment_b1.xml
│   │               └── values/
│   │                   └── strings.xml
│   ├── demo_root_app/
│   │   ├── build.gradle
│   │   ├── proguard-rules.pro
│   │   └── src/
│   │       ├── androidTest/
│   │       │   └── java/
│   │       │       └── com/
│   │       │           └── mars/
│   │       │               └── component/
│   │       │                   └── test/
│   │       │                       └── RouterTestCase.kt
│   │       └── main/
│   │           ├── AndroidManifest.xml
│   │           ├── java/
│   │           │   └── com/
│   │           │       └── baidu/
│   │           │           └── kcomponent/
│   │           │               ├── MainActivity.kt
│   │           │               └── MainApplication.kt
│   │           └── res/
│   │               ├── drawable/
│   │               │   └── ic_launcher_background.xml
│   │               ├── drawable-v24/
│   │               │   └── ic_launcher_foreground.xml
│   │               ├── layout/
│   │               │   └── activity_main.xml
│   │               ├── mipmap-anydpi-v26/
│   │               │   ├── ic_launcher.xml
│   │               │   └── ic_launcher_round.xml
│   │               └── values/
│   │                   ├── colors.xml
│   │                   ├── strings.xml
│   │                   └── styles.xml
│   ├── demo_until_library_a/
│   │   ├── build.gradle
│   │   ├── consumer-rules.pro
│   │   ├── proguard-rules.pro
│   │   └── src/
│   │       └── main/
│   │           ├── AndroidManifest.xml
│   │           └── java/
│   │               └── com/
│   │                   └── mars/
│   │                       └── util_library/
│   │                           ├── TestClassA.kt
│   │                           └── TestLibDataBean.kt
│   ├── demo_until_library_b/
│   │   ├── build.gradle
│   │   ├── consumer-rules.pro
│   │   ├── proguard-rules.pro
│   │   └── src/
│   │       ├── main/
│   │       │   ├── AndroidManifest.xml
│   │       │   └── java/
│   │       │       └── com/
│   │       │           └── mars/
│   │       │               └── util_library/
│   │       │                   └── TestClassB.kt
│   │       └── testex/
│   │           └── java/
│   │               └── com/
│   │                   └── x/
│   │                       ├── Xx.kt
│   │                       └── Yx.java
│   ├── demo_until_library_c_java/
│   │   ├── build.gradle
│   │   ├── consumer-rules.pro
│   │   ├── proguard-rules.pro
│   │   └── src/
│   │       └── main/
│   │           ├── AndroidManifest.xml
│   │           └── java/
│   │               └── TestClassC.kt
│   ├── rubik-components.gradle
│   └── rubik-packing.gradle
├── gradle/
│   └── wrapper/
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties
├── gradle.properties
├── gradlew
├── gradlew.bat
├── rubik/
│   ├── rubik_annotations/
│   │   ├── build.gradle
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               └── com/
│   │                   └── rubik/
│   │                       └── annotations/
│   │                           ├── context/
│   │                           │   ├── REvent.java
│   │                           │   ├── REventRepeatable.java
│   │                           │   ├── assist/
│   │                           │   │   ├── REventAssist.java
│   │                           │   │   └── REventAssistRepeatable.java
│   │                           │   └── instance/
│   │                           │       ├── REventInstance.java
│   │                           │       └── REventInstanceRepeatable.java
│   │                           ├── route/
│   │                           │   ├── RCallback.java
│   │                           │   ├── RExtend.java
│   │                           │   ├── RInstance.java
│   │                           │   ├── RInstanceRepeatable.java
│   │                           │   ├── RObject.java
│   │                           │   ├── RProperty.java
│   │                           │   ├── RResult.java
│   │                           │   ├── RRoute.java
│   │                           │   ├── RRouteRepeatable.java
│   │                           │   ├── RValue.java
│   │                           │   ├── assist/
│   │                           │   │   ├── RRouteAssist.java
│   │                           │   │   └── RRouteAssistRepeatable.java
│   │                           │   ├── function/
│   │                           │   │   ├── RDefaultType.java
│   │                           │   │   ├── RFunction.java
│   │                           │   │   └── RFunctionRepeatable.java
│   │                           │   ├── instance/
│   │                           │   │   ├── RRouteInstance.java
│   │                           │   │   └── RRouteInstanceRepeatable.java
│   │                           │   └── page/
│   │                           │       ├── RPage.java
│   │                           │       └── RPageRepeatable.java
│   │                           └── source/
│   │                               ├── RAggregate.java
│   │                               ├── RComponent.java
│   │                               ├── RContext.java
│   │                               ├── RContextLib.java
│   │                               ├── RGenerated.java
│   │                               ├── RGeneratedRouter.java
│   │                               ├── RGeneratedValue.java
│   │                               └── ROriginalValue.java
│   ├── rubik_context/
│   │   ├── build.gradle
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               └── com/
│   │                   └── rubik/
│   │                       ├── context/
│   │                       │   ├── Dependency.kt
│   │                       │   ├── Ext.kt
│   │                       │   ├── MavenSource.kt
│   │                       │   ├── Source.kt
│   │                       │   ├── container/
│   │                       │   │   └── ContextsContainer.kt
│   │                       │   ├── exception/
│   │                       │   │   ├── RubikComponentUndefinedException.kt
│   │                       │   │   ├── RubikDSLDefaultGroupNotSetException.kt
│   │                       │   │   ├── RubikDSLDefaultSchemeNotSetException.kt
│   │                       │   │   ├── RubikMultipleComponentDefinedException.kt
│   │                       │   │   └── RubikPluginNotApplyException.kt
│   │                       │   ├── extra/
│   │                       │   │   ├── Context.kt
│   │                       │   │   ├── Injector.kt
│   │                       │   │   └── Rubik.kt
│   │                       │   ├── folder/
│   │                       │   │   ├── ClassesTmpDir.kt
│   │                       │   │   ├── GeneratedSourceDir.kt
│   │                       │   │   └── LibsTmpDir.kt
│   │                       │   ├── id/
│   │                       │   │   ├── ContextIdHolder.kt
│   │                       │   │   └── LeastContext.kt
│   │                       │   ├── log/
│   │                       │   │   └── LogTags.kt
│   │                       │   ├── publication/
│   │                       │   │   ├── BuildType.kt
│   │                       │   │   └── LibType.kt
│   │                       │   ├── router/
│   │                       │   │   └── RouterRegister.kt
│   │                       │   └── utility/
│   │                       │       ├── KApt.kt
│   │                       │       ├── Module.kt
│   │                       │       └── Uri.kt
│   │                       └── global/
│   │                           └── GlobalConfig.kt
│   ├── rubik_dsl/
│   │   ├── build.gradle
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               └── com/
│   │                   └── rubik/
│   │                       └── dsl/
│   │                           ├── DSLRubik.kt
│   │                           ├── RDSL.java
│   │                           ├── context/
│   │                           │   ├── DSLContext.kt
│   │                           │   ├── dependency/
│   │                           │   │   ├── DSLDependencies.kt
│   │                           │   │   └── DSLDependency.kt
│   │                           │   └── source/
│   │                           │       ├── DSLMavenSource.kt
│   │                           │       ├── DSLProjectSource.kt
│   │                           │       └── DSLSource.kt
│   │                           ├── exception/
│   │                           │   └── RubikDSLComponentUriException.kt
│   │                           ├── global/
│   │                           │   ├── DSLGlobalConfig.kt
│   │                           │   ├── DSLGlobalContextConfig.kt
│   │                           │   └── DSLGlobalMavenConfig.kt
│   │                           └── packing/
│   │                               ├── DSLExcept.kt
│   │                               ├── DSLPacking.kt
│   │                               ├── DSLPackingHow.kt
│   │                               └── DSLPackingNoSource.kt
│   ├── rubik_kapt/
│   │   ├── build.gradle
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               ├── ByVersion.kt
│   │               └── com/
│   │                   └── rubik/
│   │                       └── apt/
│   │                           ├── Constants.kt
│   │                           ├── RContextProcessService.java
│   │                           ├── RContextProcessor.kt
│   │                           ├── annotation/
│   │                           │   ├── AnnotationData.kt
│   │                           │   ├── Callback.kt
│   │                           │   ├── CodebaseObtainer.kt
│   │                           │   ├── Event.kt
│   │                           │   ├── EventInstance.kt
│   │                           │   ├── Object.kt
│   │                           │   ├── Route.kt
│   │                           │   ├── RouteInstance.kt
│   │                           │   └── Value.kt
│   │                           ├── codebase/
│   │                           │   ├── AnnotationCodeBase.kt
│   │                           │   ├── ClassMirrorable.kt
│   │                           │   ├── RToken.kt
│   │                           │   ├── RouteCodeBase.kt
│   │                           │   ├── activity/
│   │                           │   │   ├── ActivityCodeBase.kt
│   │                           │   │   └── ActivityPropertyCodeBase.kt
│   │                           │   ├── api/
│   │                           │   │   ├── ApiCodeBase.kt
│   │                           │   │   ├── ApiInstanceCodeBase.kt
│   │                           │   │   ├── QueryCodeBase.kt
│   │                           │   │   └── ResultCodeBase.kt
│   │                           │   ├── callback/
│   │                           │   │   ├── FunctionCallbackCodeBase.kt
│   │                           │   │   └── ObjectCallbackCodeBase.kt
│   │                           │   ├── context/
│   │                           │   │   ├── ContextCodeBase.kt
│   │                           │   │   └── SectionCodeBase.kt
│   │                           │   ├── event/
│   │                           │   │   ├── EventCodeBase.kt
│   │                           │   │   └── EventInstanceCodeBase.kt
│   │                           │   ├── invoker/
│   │                           │   │   ├── Callbackable.kt
│   │                           │   │   ├── Instanceable.kt
│   │                           │   │   ├── InvokeContextCodeBase.kt
│   │                           │   │   ├── InvokeFunctionCodeBase.kt
│   │                           │   │   ├── InvokeOriginalCodeBase.kt
│   │                           │   │   ├── LambdaTypeCodeBase.kt
│   │                           │   │   ├── OriginalInvokable.kt
│   │                           │   │   └── TypeCodeBase.kt
│   │                           │   ├── objekt/
│   │                           │   │   └── ObjectCodeBase.kt
│   │                           │   └── value/
│   │                           │       ├── ValueCodeBase.kt
│   │                           │       └── ValueFieldCodeBase.kt
│   │                           ├── declare/
│   │                           │   └── LeastContext.kt
│   │                           ├── files/
│   │                           │   └── source/
│   │                           │       ├── AggregateSourceFile.kt
│   │                           │       ├── ContextSourceFiles.kt
│   │                           │       ├── aggregate/
│   │                           │       │   ├── CallbackTransformCode.kt
│   │                           │       │   ├── FactoryCode.kt
│   │                           │       │   ├── InvokeOriginalCode.kt
│   │                           │       │   ├── MappingType.kt
│   │                           │       │   ├── OnEventCode.kt
│   │                           │       │   ├── OnRouteCode.kt
│   │                           │       │   ├── QueryCode.kt
│   │                           │       │   └── RouteActionsImplCode.kt
│   │                           │       ├── context/
│   │                           │       │   ├── TouchCode.kt
│   │                           │       │   ├── action/
│   │                           │       │   │   ├── ApiRouteActionFunctionCode.kt
│   │                           │       │   │   └── inceface/
│   │                           │       │   │       ├── RouteActionFunctionCode.kt
│   │                           │       │   │       └── RouteActionsSourceFile.kt
│   │                           │       │   └── dsl/
│   │                           │       │       ├── ActivityDSLFuntionCode.kt
│   │                           │       │       ├── ApiDSLFunctionCode.kt
│   │                           │       │       └── DSLRouteContextSourceFiles.kt
│   │                           │       ├── identity/
│   │                           │       │   └── IdentitySourceFile.kt
│   │                           │       └── mirror/
│   │                           │           ├── callback/
│   │                           │           │   └── CallbackSourceFiles.kt
│   │                           │           ├── objekt/
│   │                           │           │   └── ObjectSourceFiles.kt
│   │                           │           └── value/
│   │                           │               ├── ValueCode.kt
│   │                           │               └── ValueSourceFiles.kt
│   │                           ├── namebox/
│   │                           │   ├── FileNameBox.kt
│   │                           │   └── MappingMatrix.kt
│   │                           ├── plugin/
│   │                           │   ├── Arguments.kt
│   │                           │   └── PluginArguments.kt
│   │                           └── utility/
│   │                               ├── Code.kt
│   │                               ├── Element.kt
│   │                               ├── FilePath.kt
│   │                               ├── KotlinPoet.kt
│   │                               └── RType.kt
│   ├── rubik_maven_repositories.gradle
│   ├── rubik_picker/
│   │   ├── build.gradle
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               └── com/
│   │                   └── rubik/
│   │                       ├── pick/
│   │                       │   ├── Excepted.kt
│   │                       │   ├── PickHow.kt
│   │                       │   ├── PickWhat.kt
│   │                       │   └── PickWhere.kt
│   │                       └── picker/
│   │                           ├── ContextPickHow.kt
│   │                           ├── ContextPicker.kt
│   │                           ├── MavenPicker.kt
│   │                           ├── PickCase.kt
│   │                           ├── Picker.kt
│   │                           ├── ProjectPicker.kt
│   │                           ├── TmpDirLibPicker.kt
│   │                           ├── container/
│   │                           │   ├── ContextPickHowContainer.kt
│   │                           │   └── PickedContextsContainer.kt
│   │                           ├── exception/
│   │                           │   ├── RubikMavenDependencyVersionNotSetException.kt
│   │                           │   ├── RubikMavenVariantNotSetException.kt
│   │                           │   ├── RubikMavenVersionNotSetException.kt
│   │                           │   ├── RubikProjectNotFoundException.kt
│   │                           │   ├── RubikProjectPathNotSetException.kt
│   │                           │   └── RubikPublicationTypeNotConfigureException.kt
│   │                           ├── extra/
│   │                           │   ├── Context.kt
│   │                           │   └── Injector.kt
│   │                           └── log/
│   │                               └── LogTags.kt
│   ├── rubik_plugins/
│   │   ├── build.gradle
│   │   └── src/
│   │       └── main/
│   │           ├── java/
│   │           │   ├── ByVersion.kt
│   │           │   └── com/
│   │           │       └── rubik/
│   │           │           └── plugins/
│   │           │               ├── MainPlugin.kt
│   │           │               ├── RubikPlugin.kt
│   │           │               ├── analyst/
│   │           │               │   └── AnalystPlugin.kt
│   │           │               ├── basic/
│   │           │               │   ├── Constants.kt
│   │           │               │   ├── LogTags.kt
│   │           │               │   ├── exception/
│   │           │               │   │   ├── RubikException.kt
│   │           │               │   │   ├── RubikKaptDependencyNotSetException.kt
│   │           │               │   │   ├── RubikNotCalculatePublicationException.kt
│   │           │               │   │   ├── RubikPackingNotSupportException.kt
│   │           │               │   │   ├── RubikProjectNoKotlinAndroidPluginException.kt
│   │           │               │   │   ├── RubikRouterAndContextVersionsNotMatchException.kt
│   │           │               │   │   └── RubikRouterDependencyNotSetException.kt
│   │           │               │   ├── extra/
│   │           │               │   │   └── Rubik.kt
│   │           │               │   ├── transform/
│   │           │               │   │   ├── MakeLibsTransform.kt
│   │           │               │   │   └── RubikTransform.kt
│   │           │               │   └── utility/
│   │           │               │       ├── Code.kt
│   │           │               │       ├── Javassist.kt
│   │           │               │       └── KotlinPoet.kt
│   │           │               ├── context/
│   │           │               │   ├── ContextPlugin.kt
│   │           │               │   ├── controller/
│   │           │               │   │   ├── AllContextController.kt
│   │           │               │   │   ├── ComponentIdGeneratingController.kt
│   │           │               │   │   ├── ContextKaptController.kt
│   │           │               │   │   └── ProjectSyncController.kt
│   │           │               │   └── generate/
│   │           │               │       └── file/
│   │           │               │           ├── IdentitySourceFile.kt
│   │           │               │           └── ProjectSettingsFile.kt
│   │           │               ├── extension/
│   │           │               │   ├── RubikExtension.kt
│   │           │               │   └── RubikSingletonExtension.kt
│   │           │               └── shell/
│   │           │                   ├── ShellPlugin.kt
│   │           │                   ├── checker/
│   │           │                   │   ├── CheckClassesRule.kt
│   │           │                   │   ├── CheckClassesTransform.kt
│   │           │                   │   ├── context/
│   │           │                   │   │   ├── CheckContextVersionRule.kt
│   │           │                   │   │   └── CheckContextVersionTransform.kt
│   │           │                   │   └── router/
│   │           │                   │       ├── CheckRouterVersionRule.kt
│   │           │                   │       └── CheckRouterVersionTransform.kt
│   │           │                   ├── controller/
│   │           │                   │   ├── ShellConfigGeneratingController.kt
│   │           │                   │   └── ShellSourceGeneratingController.kt
│   │           │                   └── generate/
│   │           │                       └── files/
│   │           │                           ├── RubikIdCheckerSourceFile.kt
│   │           │                           └── RubikInitializerSourceFile.kt
│   │           └── resources/
│   │               └── META-INF/
│   │                   └── gradle-plugins/
│   │                       ├── rubik-analyst.properties
│   │                       ├── rubik-context.properties
│   │                       ├── rubik-shell.properties
│   │                       └── rubik.properties
│   ├── rubik_publish/
│   │   ├── build.gradle
│   │   └── src/
│   │       ├── k1_5/
│   │       │   └── java/
│   │       │       └── ResetKotlinCompileTask.kt
│   │       ├── k1_7/
│   │       │   └── java/
│   │       │       └── ResetKotlinCompileTask.kt
│   │       └── main/
│   │           └── java/
│   │               ├── ByPluginVersion.kt
│   │               └── com/
│   │                   └── rubik/
│   │                       └── publish/
│   │                           ├── exception/
│   │                           │   ├── RubikNoClassesToJarException.kt
│   │                           │   ├── RubikNoKaptTaskFoundException.kt
│   │                           │   ├── RubikNoKotlinCompileFoundException.kt
│   │                           │   ├── RubikNoSourceToCompileException.kt
│   │                           │   ├── RubikPublishVersionNotSetException.kt
│   │                           │   └── RubikTaskStateError.kt
│   │                           ├── extension/
│   │                           │   └── ContextRecordExtension.kt
│   │                           ├── extra/
│   │                           │   ├── Context.kt
│   │                           │   ├── Injector.kt
│   │                           │   └── Rubik.kt
│   │                           ├── log/
│   │                           │   └── LogTags.kt
│   │                           ├── publication/
│   │                           │   ├── Component.kt
│   │                           │   ├── Jar.kt
│   │                           │   ├── Lib.kt
│   │                           │   └── SourceCode.kt
│   │                           ├── record/
│   │                           │   ├── ContextPublicationRecords.kt
│   │                           │   ├── PublicationRecord.kt
│   │                           │   ├── generate/
│   │                           │   │   └── file/
│   │                           │   │       └── RubikPublicationRecordFiles.kt
│   │                           │   └── version/
│   │                           │       └── StandardVersion.kt
│   │                           └── task/
│   │                               ├── GlobalPublishTasksController.kt
│   │                               ├── PublishContextTask.kt
│   │                               ├── PublishContextTaskController.kt
│   │                               ├── PublishContextTaskGroup.kt
│   │                               ├── PublishContextTasksContainer.kt
│   │                               ├── both/
│   │                               │   ├── ComponentAndContextLibsTask.kt
│   │                               │   ├── ComponentAndContextLibsTaskGraphic.kt
│   │                               │   ├── PackingLinkComponentAndContextLibsTask.kt
│   │                               │   ├── VariantComponentAndContextLibsTask.kt
│   │                               │   └── VariantComponentAndContextLibsTaskGraphic.kt
│   │                               ├── component/
│   │                               │   ├── ComponentTask.kt
│   │                               │   ├── ComponentTaskGraphic.kt
│   │                               │   ├── PackingLinkComponentTask.kt
│   │                               │   ├── VariantComponentTask.kt
│   │                               │   └── VariantComponentTaskGraphic.kt
│   │                               ├── global/
│   │                               │   ├── AllComponentAndContextLibsTask.kt
│   │                               │   ├── AllComponentTask.kt
│   │                               │   ├── AllContextLibsTask.kt
│   │                               │   ├── TagComponentAndContextLibsTask.kt
│   │                               │   ├── TagComponentTask.kt
│   │                               │   └── TagContextLibsTask.kt
│   │                               ├── lib/
│   │                               │   ├── ContextLibTask.kt
│   │                               │   ├── ContextLibTaskGraphic.kt
│   │                               │   └── state/
│   │                               │       └── ContextLibStateMachine.kt
│   │                               ├── name/
│   │                               │   ├── PublishByMeaning.kt
│   │                               │   ├── PublishTaskName.kt
│   │                               │   └── PublishTaskNameMeaning.kt
│   │                               ├── provider/
│   │                               │   ├── CopySourceTaskProvider.kt
│   │                               │   ├── JarTaskProvider.kt
│   │                               │   └── KotlinCompileTaskProvider.kt
│   │                               └── target/
│   │                                   ├── TaskTarget.kt
│   │                                   ├── TaskTargetContainer.kt
│   │                                   └── TaskTargetController.kt
│   └── rubik_router/
│       ├── build.gradle
│       ├── consumer-rules.pro
│       ├── proguard-rules.pro
│       └── src/
│           └── main/
│               ├── AndroidManifest.xml
│               ├── java/
│               │   └── com/
│               │       └── rubik/
│               │           ├── Rubik.kt
│               │           ├── activity/
│               │           │   └── Launcher.kt
│               │           ├── builder/
│               │           │   ├── query/
│               │           │   │   ├── BundleQueriesBuilder.kt
│               │           │   │   ├── DSLLaunchQueriesBuilder.kt
│               │           │   │   ├── LinkedLaunchQueriesBuilder.kt
│               │           │   │   ├── QueriesBuilder.kt
│               │           │   │   └── QueriesFrameable.kt
│               │           │   ├── result/
│               │           │   │   └── ResultsBuildable.kt
│               │           │   └── router/
│               │           │       ├── BasicRouterBuilder.kt
│               │           │       ├── DSLApiRouterBuilder.kt
│               │           │       ├── DSLLaunchRouterBuilder.kt
│               │           │       ├── LinkedApiRouterBuilder.kt
│               │           │       ├── LinkedLaunchRouterBuilder.kt
│               │           │       └── RouterBuildable.kt
│               │           ├── context/
│               │           │   ├── Aggregatable.kt
│               │           │   ├── LifeCycleEvent.kt
│               │           │   └── RouteActions.kt
│               │           ├── identity/
│               │           │   ├── IdentityChecker.kt
│               │           │   ├── RIdentity.kt
│               │           │   └── exception/
│               │           │       ├── DuplicateComponentException.kt
│               │           │       ├── DuplicateContextException.kt
│               │           │       ├── RIdentityCheckFailedException.kt
│               │           │       ├── RIdentityNotFoundException.kt
│               │           │       └── UriNotConformException.kt
│               │           ├── logger/
│               │           │   └── Logger.kt
│               │           ├── route/
│               │           │   ├── LaunchQueries.kt
│               │           │   ├── Object.kt
│               │           │   ├── Queries.kt
│               │           │   ├── Query.kt
│               │           │   ├── Result.kt
│               │           │   ├── ResultGroups.kt
│               │           │   ├── Results.kt
│               │           │   ├── exception/
│               │           │   │   ├── BadAggregatableClassException.kt
│               │           │   │   ├── BadPathOrVersionException.kt
│               │           │   │   ├── BadQueryException.kt
│               │           │   │   ├── BadResultException.kt
│               │           │   │   ├── BadTypeException.kt
│               │           │   │   ├── BadUriException.kt
│               │           │   │   ├── BadValueException.kt
│               │           │   │   ├── DuplicateRegisteredUriException.kt
│               │           │   │   └── ParcelableNoCreatorException.kt
│               │           │   └── mapping/
│               │           │       ├── Bundle.kt
│               │           │       ├── JsonMapping.kt
│               │           │       ├── LiveDataMapping.kt
│               │           │       ├── ParcelMapping.kt
│               │           │       └── TypeMapping.kt
│               │           └── router/
│               │               ├── Router.kt
│               │               ├── RouterResult.kt
│               │               ├── TouchHolder.kt
│               │               ├── annotations/
│               │               │   └── RInvariant.kt
│               │               ├── exception/
│               │               │   ├── BadRubikVersionException.kt
│               │               │   ├── BadUriException.kt
│               │               │   ├── RContextNotFoundException.kt
│               │               │   ├── RubikAggregateNotFoundException.kt
│               │               │   └── RubikNotInitException.kt
│               │               └── uri/
│               │                   └── Path.kt
│               └── res/
│                   └── values/
│                       └── strings.xml
├── rubik_libs_repository/
│   ├── demo_com_mars_rubik_test_detail/
│   │   ├── context/
│   │   │   └── detail-lib-context.jar
│   │   └── context_sources/
│   │       └── detail-lib-context-sources.jar
│   ├── demo_com_mars_rubik_test_detail_java/
│   │   ├── context/
│   │   │   └── detail-java-lib-context.jar
│   │   └── context_sources/
│   │       └── detail-java-lib-context-sources.jar
│   ├── demo_com_mars_rubik_test_home/
│   │   ├── context/
│   │   │   └── home-lib-context.jar
│   │   └── context_sources/
│   │       └── home-lib-context-sources.jar
│   ├── rubik-demo_com_mars_rubik_test_detail-publication-records.gradle
│   ├── rubik-demo_com_mars_rubik_test_detail_java-publication-records.gradle
│   └── rubik-demo_com_mars_rubik_test_home-publication-records.gradle
├── rubik_maven_local_repository/
│   └── com/
│       ├── kotlin/
│       │   └── blueprint/
│       │       ├── 5.1.12-K1_5/
│       │       │   ├── blueprint-5.1.12-K1_5.jar
│       │       │   ├── blueprint-5.1.12-K1_5.jar.md5
│       │       │   ├── blueprint-5.1.12-K1_5.jar.sha1
│       │       │   └── blueprint-5.1.12-K1_5.pom
│       │       ├── maven-metadata.xml
│       │       ├── maven-metadata.xml.md5
│       │       ├── maven-metadata.xml.sha1
│       │       ├── maven-metadata.xml.sha256
│       │       └── maven-metadata.xml.sha512
│       ├── ktnail/
│       │   ├── gradle/
│       │   │   ├── 0.1.1-AGBT4_2-K1_5/
│       │   │   │   ├── gradle-0.1.1-AGBT4_2-K1_5.jar
│       │   │   │   ├── gradle-0.1.1-AGBT4_2-K1_5.jar.md5
│       │   │   │   ├── gradle-0.1.1-AGBT4_2-K1_5.jar.sha1
│       │   │   │   ├── gradle-0.1.1-AGBT4_2-K1_5.jar.sha256
│       │   │   │   ├── gradle-0.1.1-AGBT4_2-K1_5.jar.sha512
│       │   │   │   ├── gradle-0.1.1-AGBT4_2-K1_5.module
│       │   │   │   ├── gradle-0.1.1-AGBT4_2-K1_5.module.md5
│       │   │   │   ├── gradle-0.1.1-AGBT4_2-K1_5.module.sha1
│       │   │   │   ├── gradle-0.1.1-AGBT4_2-K1_5.module.sha256
│       │   │   │   ├── gradle-0.1.1-AGBT4_2-K1_5.module.sha512
│       │   │   │   ├── gradle-0.1.1-AGBT4_2-K1_5.pom
│       │   │   │   ├── gradle-0.1.1-AGBT4_2-K1_5.pom.md5
│       │   │   │   ├── gradle-0.1.1-AGBT4_2-K1_5.pom.sha1
│       │   │   │   ├── gradle-0.1.1-AGBT4_2-K1_5.pom.sha256
│       │   │   │   └── gradle-0.1.1-AGBT4_2-K1_5.pom.sha512
│       │   │   ├── maven-metadata.xml
│       │   │   ├── maven-metadata.xml.md5
│       │   │   ├── maven-metadata.xml.sha1
│       │   │   ├── maven-metadata.xml.sha256
│       │   │   └── maven-metadata.xml.sha512
│       │   └── x/
│       │       ├── 0.0.62-K1_5/
│       │       │   ├── x-0.0.62-K1_5.jar
│       │       │   ├── x-0.0.62-K1_5.jar.md5
│       │       │   ├── x-0.0.62-K1_5.jar.sha1
│       │       │   └── x-0.0.62-K1_5.pom
│       │       ├── 0.0.67-K1_5/
│       │       │   ├── x-0.0.67-K1_5.jar
│       │       │   ├── x-0.0.67-K1_5.jar.md5
│       │       │   ├── x-0.0.67-K1_5.jar.sha1
│       │       │   ├── x-0.0.67-K1_5.jar.sha256
│       │       │   ├── x-0.0.67-K1_5.jar.sha512
│       │       │   ├── x-0.0.67-K1_5.module
│       │       │   ├── x-0.0.67-K1_5.module.md5
│       │       │   ├── x-0.0.67-K1_5.module.sha1
│       │       │   ├── x-0.0.67-K1_5.module.sha256
│       │       │   ├── x-0.0.67-K1_5.module.sha512
│       │       │   ├── x-0.0.67-K1_5.pom
│       │       │   ├── x-0.0.67-K1_5.pom.md5
│       │       │   ├── x-0.0.67-K1_5.pom.sha1
│       │       │   ├── x-0.0.67-K1_5.pom.sha256
│       │       │   └── x-0.0.67-K1_5.pom.sha512
│       │       ├── maven-metadata.xml
│       │       ├── maven-metadata.xml.md5
│       │       ├── maven-metadata.xml.sha1
│       │       ├── maven-metadata.xml.sha256
│       │       └── maven-metadata.xml.sha512
│       ├── mars/
│       │   └── rubik-test/
│       │       ├── detail-component-company1-channel1-release/
│       │       │   ├── 0.0.1-DEV/
│       │       │   │   ├── detail-component-company1-channel1-release-0.0.1-DEV.aar
│       │       │   │   ├── detail-component-company1-channel1-release-0.0.1-DEV.aar.md5
│       │       │   │   ├── detail-component-company1-channel1-release-0.0.1-DEV.aar.sha1
│       │       │   │   ├── detail-component-company1-channel1-release-0.0.1-DEV.aar.sha256
│       │       │   │   ├── detail-component-company1-channel1-release-0.0.1-DEV.aar.sha512
│       │       │   │   ├── detail-component-company1-channel1-release-0.0.1-DEV.pom
│       │       │   │   ├── detail-component-company1-channel1-release-0.0.1-DEV.pom.md5
│       │       │   │   ├── detail-component-company1-channel1-release-0.0.1-DEV.pom.sha1
│       │       │   │   ├── detail-component-company1-channel1-release-0.0.1-DEV.pom.sha256
│       │       │   │   └── detail-component-company1-channel1-release-0.0.1-DEV.pom.sha512
│       │       │   ├── maven-metadata.xml
│       │       │   ├── maven-metadata.xml.md5
│       │       │   ├── maven-metadata.xml.sha1
│       │       │   ├── maven-metadata.xml.sha256
│       │       │   └── maven-metadata.xml.sha512
│       │       ├── detail-component-company1-channel2-release/
│       │       │   ├── 0.0.1-DEV/
│       │       │   │   ├── detail-component-company1-channel2-release-0.0.1-DEV.aar
│       │       │   │   ├── detail-component-company1-channel2-release-0.0.1-DEV.aar.md5
│       │       │   │   ├── detail-component-company1-channel2-release-0.0.1-DEV.aar.sha1
│       │       │   │   ├── detail-component-company1-channel2-release-0.0.1-DEV.aar.sha256
│       │       │   │   ├── detail-component-company1-channel2-release-0.0.1-DEV.aar.sha512
│       │       │   │   ├── detail-component-company1-channel2-release-0.0.1-DEV.pom
│       │       │   │   ├── detail-component-company1-channel2-release-0.0.1-DEV.pom.md5
│       │       │   │   ├── detail-component-company1-channel2-release-0.0.1-DEV.pom.sha1
│       │       │   │   ├── detail-component-company1-channel2-release-0.0.1-DEV.pom.sha256
│       │       │   │   └── detail-component-company1-channel2-release-0.0.1-DEV.pom.sha512
│       │       │   ├── maven-metadata.xml
│       │       │   ├── maven-metadata.xml.md5
│       │       │   ├── maven-metadata.xml.sha1
│       │       │   ├── maven-metadata.xml.sha256
│       │       │   └── maven-metadata.xml.sha512
│       │       ├── detail-java-component-release/
│       │       │   ├── 0.0.1-DEV/
│       │       │   │   ├── detail-java-component-release-0.0.1-DEV.aar
│       │       │   │   ├── detail-java-component-release-0.0.1-DEV.aar.md5
│       │       │   │   ├── detail-java-component-release-0.0.1-DEV.aar.sha1
│       │       │   │   ├── detail-java-component-release-0.0.1-DEV.aar.sha256
│       │       │   │   ├── detail-java-component-release-0.0.1-DEV.aar.sha512
│       │       │   │   ├── detail-java-component-release-0.0.1-DEV.pom
│       │       │   │   ├── detail-java-component-release-0.0.1-DEV.pom.md5
│       │       │   │   ├── detail-java-component-release-0.0.1-DEV.pom.sha1
│       │       │   │   ├── detail-java-component-release-0.0.1-DEV.pom.sha256
│       │       │   │   └── detail-java-component-release-0.0.1-DEV.pom.sha512
│       │       │   ├── maven-metadata.xml
│       │       │   ├── maven-metadata.xml.md5
│       │       │   ├── maven-metadata.xml.sha1
│       │       │   ├── maven-metadata.xml.sha256
│       │       │   └── maven-metadata.xml.sha512
│       │       ├── detail-java-lib-context/
│       │       │   ├── 0.0.1-DEV/
│       │       │   │   ├── detail-java-lib-context-0.0.1-DEV-sources.jar
│       │       │   │   ├── detail-java-lib-context-0.0.1-DEV-sources.jar.md5
│       │       │   │   ├── detail-java-lib-context-0.0.1-DEV-sources.jar.sha1
│       │       │   │   ├── detail-java-lib-context-0.0.1-DEV-sources.jar.sha256
│       │       │   │   ├── detail-java-lib-context-0.0.1-DEV-sources.jar.sha512
│       │       │   │   ├── detail-java-lib-context-0.0.1-DEV.jar
│       │       │   │   ├── detail-java-lib-context-0.0.1-DEV.jar.md5
│       │       │   │   ├── detail-java-lib-context-0.0.1-DEV.jar.sha1
│       │       │   │   ├── detail-java-lib-context-0.0.1-DEV.jar.sha256
│       │       │   │   ├── detail-java-lib-context-0.0.1-DEV.jar.sha512
│       │       │   │   ├── detail-java-lib-context-0.0.1-DEV.pom
│       │       │   │   ├── detail-java-lib-context-0.0.1-DEV.pom.md5
│       │       │   │   ├── detail-java-lib-context-0.0.1-DEV.pom.sha1
│       │       │   │   ├── detail-java-lib-context-0.0.1-DEV.pom.sha256
│       │       │   │   └── detail-java-lib-context-0.0.1-DEV.pom.sha512
│       │       │   ├── maven-metadata.xml
│       │       │   ├── maven-metadata.xml.md5
│       │       │   ├── maven-metadata.xml.sha1
│       │       │   ├── maven-metadata.xml.sha256
│       │       │   └── maven-metadata.xml.sha512
│       │       ├── detail-lib-context/
│       │       │   ├── 0.0.1-DEV/
│       │       │   │   ├── detail-lib-context-0.0.1-DEV-sources.jar
│       │       │   │   ├── detail-lib-context-0.0.1-DEV-sources.jar.md5
│       │       │   │   ├── detail-lib-context-0.0.1-DEV-sources.jar.sha1
│       │       │   │   ├── detail-lib-context-0.0.1-DEV-sources.jar.sha256
│       │       │   │   ├── detail-lib-context-0.0.1-DEV-sources.jar.sha512
│       │       │   │   ├── detail-lib-context-0.0.1-DEV.jar
│       │       │   │   ├── detail-lib-context-0.0.1-DEV.jar.md5
│       │       │   │   ├── detail-lib-context-0.0.1-DEV.jar.sha1
│       │       │   │   ├── detail-lib-context-0.0.1-DEV.jar.sha256
│       │       │   │   ├── detail-lib-context-0.0.1-DEV.jar.sha512
│       │       │   │   ├── detail-lib-context-0.0.1-DEV.pom
│       │       │   │   ├── detail-lib-context-0.0.1-DEV.pom.md5
│       │       │   │   ├── detail-lib-context-0.0.1-DEV.pom.sha1
│       │       │   │   ├── detail-lib-context-0.0.1-DEV.pom.sha256
│       │       │   │   └── detail-lib-context-0.0.1-DEV.pom.sha512
│       │       │   ├── maven-metadata.xml
│       │       │   ├── maven-metadata.xml.md5
│       │       │   ├── maven-metadata.xml.sha1
│       │       │   ├── maven-metadata.xml.sha256
│       │       │   └── maven-metadata.xml.sha512
│       │       └── home-lib-context/
│       │           ├── 0.0.1-DEV/
│       │           │   ├── home-lib-context-0.0.1-DEV-sources.jar
│       │           │   ├── home-lib-context-0.0.1-DEV-sources.jar.md5
│       │           │   ├── home-lib-context-0.0.1-DEV-sources.jar.sha1
│       │           │   ├── home-lib-context-0.0.1-DEV-sources.jar.sha256
│       │           │   ├── home-lib-context-0.0.1-DEV-sources.jar.sha512
│       │           │   ├── home-lib-context-0.0.1-DEV.jar
│       │           │   ├── home-lib-context-0.0.1-DEV.jar.md5
│       │           │   ├── home-lib-context-0.0.1-DEV.jar.sha1
│       │           │   ├── home-lib-context-0.0.1-DEV.jar.sha256
│       │           │   ├── home-lib-context-0.0.1-DEV.jar.sha512
│       │           │   ├── home-lib-context-0.0.1-DEV.pom
│       │           │   ├── home-lib-context-0.0.1-DEV.pom.md5
│       │           │   ├── home-lib-context-0.0.1-DEV.pom.sha1
│       │           │   ├── home-lib-context-0.0.1-DEV.pom.sha256
│       │           │   └── home-lib-context-0.0.1-DEV.pom.sha512
│       │           ├── maven-metadata.xml
│       │           ├── maven-metadata.xml.md5
│       │           ├── maven-metadata.xml.sha1
│       │           ├── maven-metadata.xml.sha256
│       │           └── maven-metadata.xml.sha512
│       ├── rubik/
│       │   ├── annotations/
│       │   │   ├── 1.10.0.0-LOCAL/
│       │   │   │   ├── annotations-1.10.0.0-LOCAL.jar
│       │   │   │   ├── annotations-1.10.0.0-LOCAL.jar.md5
│       │   │   │   ├── annotations-1.10.0.0-LOCAL.jar.sha1
│       │   │   │   ├── annotations-1.10.0.0-LOCAL.jar.sha256
│       │   │   │   ├── annotations-1.10.0.0-LOCAL.jar.sha512
│       │   │   │   ├── annotations-1.10.0.0-LOCAL.pom
│       │   │   │   ├── annotations-1.10.0.0-LOCAL.pom.md5
│       │   │   │   ├── annotations-1.10.0.0-LOCAL.pom.sha1
│       │   │   │   ├── annotations-1.10.0.0-LOCAL.pom.sha256
│       │   │   │   └── annotations-1.10.0.0-LOCAL.pom.sha512
│       │   │   ├── maven-metadata.xml
│       │   │   ├── maven-metadata.xml.md5
│       │   │   ├── maven-metadata.xml.sha1
│       │   │   ├── maven-metadata.xml.sha256
│       │   │   └── maven-metadata.xml.sha512
│       │   ├── context/
│       │   │   ├── 1.10.0.0-AGBT4_2-K1_5-LOCAL/
│       │   │   │   ├── context-1.10.0.0-AGBT4_2-K1_5-LOCAL.jar
│       │   │   │   ├── context-1.10.0.0-AGBT4_2-K1_5-LOCAL.jar.md5
│       │   │   │   ├── context-1.10.0.0-AGBT4_2-K1_5-LOCAL.jar.sha1
│       │   │   │   ├── context-1.10.0.0-AGBT4_2-K1_5-LOCAL.jar.sha256
│       │   │   │   ├── context-1.10.0.0-AGBT4_2-K1_5-LOCAL.jar.sha512
│       │   │   │   ├── context-1.10.0.0-AGBT4_2-K1_5-LOCAL.pom
│       │   │   │   ├── context-1.10.0.0-AGBT4_2-K1_5-LOCAL.pom.md5
│       │   │   │   ├── context-1.10.0.0-AGBT4_2-K1_5-LOCAL.pom.sha1
│       │   │   │   ├── context-1.10.0.0-AGBT4_2-K1_5-LOCAL.pom.sha256
│       │   │   │   └── context-1.10.0.0-AGBT4_2-K1_5-LOCAL.pom.sha512
│       │   │   ├── maven-metadata.xml
│       │   │   ├── maven-metadata.xml.md5
│       │   │   ├── maven-metadata.xml.sha1
│       │   │   ├── maven-metadata.xml.sha256
│       │   │   └── maven-metadata.xml.sha512
│       │   ├── dsl/
│       │   │   ├── 1.10.0.0-AGBT4_2-K1_5-LOCAL/
│       │   │   │   ├── dsl-1.10.0.0-AGBT4_2-K1_5-LOCAL.jar
│       │   │   │   ├── dsl-1.10.0.0-AGBT4_2-K1_5-LOCAL.jar.md5
│       │   │   │   ├── dsl-1.10.0.0-AGBT4_2-K1_5-LOCAL.jar.sha1
│       │   │   │   ├── dsl-1.10.0.0-AGBT4_2-K1_5-LOCAL.jar.sha256
│       │   │   │   ├── dsl-1.10.0.0-AGBT4_2-K1_5-LOCAL.jar.sha512
│       │   │   │   ├── dsl-1.10.0.0-AGBT4_2-K1_5-LOCAL.pom
│       │   │   │   ├── dsl-1.10.0.0-AGBT4_2-K1_5-LOCAL.pom.md5
│       │   │   │   ├── dsl-1.10.0.0-AGBT4_2-K1_5-LOCAL.pom.sha1
│       │   │   │   ├── dsl-1.10.0.0-AGBT4_2-K1_5-LOCAL.pom.sha256
│       │   │   │   └── dsl-1.10.0.0-AGBT4_2-K1_5-LOCAL.pom.sha512
│       │   │   ├── maven-metadata.xml
│       │   │   ├── maven-metadata.xml.md5
│       │   │   ├── maven-metadata.xml.sha1
│       │   │   ├── maven-metadata.xml.sha256
│       │   │   └── maven-metadata.xml.sha512
│       │   ├── kapt/
│       │   │   ├── 1.10.0.0-K1_5-LOCAL/
│       │   │   │   ├── kapt-1.10.0.0-K1_5-LOCAL.jar
│       │   │   │   ├── kapt-1.10.0.0-K1_5-LOCAL.jar.md5
│       │   │   │   ├── kapt-1.10.0.0-K1_5-LOCAL.jar.sha1
│       │   │   │   ├── kapt-1.10.0.0-K1_5-LOCAL.jar.sha256
│       │   │   │   ├── kapt-1.10.0.0-K1_5-LOCAL.jar.sha512
│       │   │   │   ├── kapt-1.10.0.0-K1_5-LOCAL.pom
│       │   │   │   ├── kapt-1.10.0.0-K1_5-LOCAL.pom.md5
│       │   │   │   ├── kapt-1.10.0.0-K1_5-LOCAL.pom.sha1
│       │   │   │   ├── kapt-1.10.0.0-K1_5-LOCAL.pom.sha256
│       │   │   │   └── kapt-1.10.0.0-K1_5-LOCAL.pom.sha512
│       │   │   ├── maven-metadata.xml
│       │   │   ├── maven-metadata.xml.md5
│       │   │   ├── maven-metadata.xml.sha1
│       │   │   ├── maven-metadata.xml.sha256
│       │   │   └── maven-metadata.xml.sha512
│       │   ├── picker/
│       │   │   ├── 1.10.0.0-AGBT4_2-K1_5-LOCAL/
│       │   │   │   ├── picker-1.10.0.0-AGBT4_2-K1_5-LOCAL.jar
│       │   │   │   ├── picker-1.10.0.0-AGBT4_2-K1_5-LOCAL.jar.md5
│       │   │   │   ├── picker-1.10.0.0-AGBT4_2-K1_5-LOCAL.jar.sha1
│       │   │   │   ├── picker-1.10.0.0-AGBT4_2-K1_5-LOCAL.jar.sha256
│       │   │   │   ├── picker-1.10.0.0-AGBT4_2-K1_5-LOCAL.jar.sha512
│       │   │   │   ├── picker-1.10.0.0-AGBT4_2-K1_5-LOCAL.pom
│       │   │   │   ├── picker-1.10.0.0-AGBT4_2-K1_5-LOCAL.pom.md5
│       │   │   │   ├── picker-1.10.0.0-AGBT4_2-K1_5-LOCAL.pom.sha1
│       │   │   │   ├── picker-1.10.0.0-AGBT4_2-K1_5-LOCAL.pom.sha256
│       │   │   │   └── picker-1.10.0.0-AGBT4_2-K1_5-LOCAL.pom.sha512
│       │   │   ├── maven-metadata.xml
│       │   │   ├── maven-metadata.xml.md5
│       │   │   ├── maven-metadata.xml.sha1
│       │   │   ├── maven-metadata.xml.sha256
│       │   │   └── maven-metadata.xml.sha512
│       │   ├── plugins/
│       │   │   ├── 1.10.0.0-AGBT4_2-K1_5-LOCAL/
│       │   │   │   ├── plugins-1.10.0.0-AGBT4_2-K1_5-LOCAL.jar
│       │   │   │   ├── plugins-1.10.0.0-AGBT4_2-K1_5-LOCAL.jar.md5
│       │   │   │   ├── plugins-1.10.0.0-AGBT4_2-K1_5-LOCAL.jar.sha1
│       │   │   │   ├── plugins-1.10.0.0-AGBT4_2-K1_5-LOCAL.jar.sha256
│       │   │   │   ├── plugins-1.10.0.0-AGBT4_2-K1_5-LOCAL.jar.sha512
│       │   │   │   ├── plugins-1.10.0.0-AGBT4_2-K1_5-LOCAL.pom
│       │   │   │   ├── plugins-1.10.0.0-AGBT4_2-K1_5-LOCAL.pom.md5
│       │   │   │   ├── plugins-1.10.0.0-AGBT4_2-K1_5-LOCAL.pom.sha1
│       │   │   │   ├── plugins-1.10.0.0-AGBT4_2-K1_5-LOCAL.pom.sha256
│       │   │   │   └── plugins-1.10.0.0-AGBT4_2-K1_5-LOCAL.pom.sha512
│       │   │   ├── maven-metadata.xml
│       │   │   ├── maven-metadata.xml.md5
│       │   │   ├── maven-metadata.xml.sha1
│       │   │   ├── maven-metadata.xml.sha256
│       │   │   └── maven-metadata.xml.sha512
│       │   ├── publish/
│       │   │   ├── 1.10.0.0-AGBT4_2-K1_5-LOCAL/
│       │   │   │   ├── publish-1.10.0.0-AGBT4_2-K1_5-LOCAL.jar
│       │   │   │   ├── publish-1.10.0.0-AGBT4_2-K1_5-LOCAL.jar.md5
│       │   │   │   ├── publish-1.10.0.0-AGBT4_2-K1_5-LOCAL.jar.sha1
│       │   │   │   ├── publish-1.10.0.0-AGBT4_2-K1_5-LOCAL.jar.sha256
│       │   │   │   ├── publish-1.10.0.0-AGBT4_2-K1_5-LOCAL.jar.sha512
│       │   │   │   ├── publish-1.10.0.0-AGBT4_2-K1_5-LOCAL.pom
│       │   │   │   ├── publish-1.10.0.0-AGBT4_2-K1_5-LOCAL.pom.md5
│       │   │   │   ├── publish-1.10.0.0-AGBT4_2-K1_5-LOCAL.pom.sha1
│       │   │   │   ├── publish-1.10.0.0-AGBT4_2-K1_5-LOCAL.pom.sha256
│       │   │   │   └── publish-1.10.0.0-AGBT4_2-K1_5-LOCAL.pom.sha512
│       │   │   ├── maven-metadata.xml
│       │   │   ├── maven-metadata.xml.md5
│       │   │   ├── maven-metadata.xml.sha1
│       │   │   ├── maven-metadata.xml.sha256
│       │   │   └── maven-metadata.xml.sha512
│       │   └── router/
│       │       ├── 1.10.0.0-K1_5-LOCAL/
│       │       │   ├── router-1.10.0.0-K1_5-LOCAL.jar
│       │       │   ├── router-1.10.0.0-K1_5-LOCAL.jar.md5
│       │       │   ├── router-1.10.0.0-K1_5-LOCAL.jar.sha1
│       │       │   ├── router-1.10.0.0-K1_5-LOCAL.jar.sha256
│       │       │   ├── router-1.10.0.0-K1_5-LOCAL.jar.sha512
│       │       │   ├── router-1.10.0.0-K1_5-LOCAL.pom
│       │       │   ├── router-1.10.0.0-K1_5-LOCAL.pom.md5
│       │       │   ├── router-1.10.0.0-K1_5-LOCAL.pom.sha1
│       │       │   ├── router-1.10.0.0-K1_5-LOCAL.pom.sha256
│       │       │   └── router-1.10.0.0-K1_5-LOCAL.pom.sha512
│       │       ├── maven-metadata.xml
│       │       ├── maven-metadata.xml.md5
│       │       ├── maven-metadata.xml.sha1
│       │       ├── maven-metadata.xml.sha256
│       │       └── maven-metadata.xml.sha512
│       └── synccode/
│           └── syncer/
│               ├── 0.0.8-K1_5/
│               │   ├── syncer-0.0.8-K1_5.jar
│               │   ├── syncer-0.0.8-K1_5.jar.md5
│               │   ├── syncer-0.0.8-K1_5.jar.sha1
│               │   ├── syncer-0.0.8-K1_5.jar.sha256
│               │   ├── syncer-0.0.8-K1_5.jar.sha512
│               │   ├── syncer-0.0.8-K1_5.module
│               │   ├── syncer-0.0.8-K1_5.module.md5
│               │   ├── syncer-0.0.8-K1_5.module.sha1
│               │   ├── syncer-0.0.8-K1_5.module.sha256
│               │   ├── syncer-0.0.8-K1_5.module.sha512
│               │   ├── syncer-0.0.8-K1_5.pom
│               │   ├── syncer-0.0.8-K1_5.pom.md5
│               │   ├── syncer-0.0.8-K1_5.pom.sha1
│               │   ├── syncer-0.0.8-K1_5.pom.sha256
│               │   └── syncer-0.0.8-K1_5.pom.sha512
│               ├── maven-metadata.xml
│               ├── maven-metadata.xml.md5
│               ├── maven-metadata.xml.sha1
│               ├── maven-metadata.xml.sha256
│               └── maven-metadata.xml.sha512
├── settings-rubik.gradle
├── settings.gradle
├── test_app/
│   ├── build.gradle
│   ├── proguard-rules.pro
│   └── src/
│       ├── androidTest/
│       │   └── java/
│       │       └── com/
│       │           └── rubik/
│       │               └── test/
│       │                   ├── EventTest.kt
│       │                   ├── LaunchTest.kt
│       │                   ├── PathTest.kt
│       │                   ├── RouterBuilderTest.kt
│       │                   ├── RouterResultTest.kt
│       │                   ├── RouterTest.kt
│       │                   ├── RubikTest.kt
│       │                   ├── TouchTest.kt
│       │                   └── router/
│       │                       ├── TestAggregate.kt
│       │                       ├── TestSimpleAggregate.kt
│       │                       └── TestSimpleAggregateFactory.kt
│       ├── main/
│       │   ├── AndroidManifest.xml
│       │   ├── java/
│       │   │   └── com/
│       │   │       └── rubik/
│       │   │           └── test/
│       │   │               └── TestActivity.kt
│       │   └── res/
│       │       ├── drawable/
│       │       │   └── ic_launcher_background.xml
│       │       ├── drawable-v24/
│       │       │   └── ic_launcher_foreground.xml
│       │       ├── layout/
│       │       │   └── activity_test.xml
│       │       ├── mipmap-anydpi-v26/
│       │       │   ├── ic_launcher.xml
│       │       │   └── ic_launcher_round.xml
│       │       └── values/
│       │           ├── colors.xml
│       │           ├── strings.xml
│       │           └── styles.xml
│       └── test/
│           └── java/
│               └── com/
│                   └── rubik/
│                       └── test/
│                           └── ExampleUnitTest.kt
├── version-adapter.gradle
└── versions.gradle
Download .txt
SYMBOL INDEX (46 symbols across 17 files)

FILE: demo/demo_component_detail_java/src/main/java/com/mars/component/detail/java/api/Apis.java
  class Apis (line 5) | public class Apis extends BaseApis {
    method doSth (line 8) | @RRoute(path = "doSth")
    method doSthCompanion (line 20) | @RRoute(path = "doSthStatic")

FILE: demo/demo_component_detail_java/src/main/java/com/mars/component/detail/java/api/ApisAsyncReturn.java
  class ApisAsyncReturn (line 8) | public class ApisAsyncReturn extends BaseApis {
    method doSthAsyncOpen (line 10) | @RRoute(path = "do-sth-async-open")
    method doSthAsyncInterface (line 16) | @RRoute(path = "do-sth-async-interface")

FILE: demo/demo_component_detail_java/src/main/java/com/mars/component/detail/java/api/ApisForInstance.java
  class ApisForInstance (line 7) | public class ApisForInstance extends BaseApis {
    method ApisForInstance (line 11) | @RRouteInstance(provideForPath = "do-sth-bean-provide-instance-by-func")
    method doSthBean (line 17) | @RRoute(path = "do-sth-bean-provide-instance-by-func")

FILE: demo/demo_component_detail_java/src/main/java/com/mars/component/detail/java/api/BaseApis.java
  class BaseApis (line 3) | public class BaseApis {
    method println (line 4) | public static void println(String msg) {

FILE: demo/demo_component_detail_java/src/main/java/com/mars/component/detail/java/api/callback/Callback.java
  class Callback (line 7) | public class Callback {
    method onCallNone (line 8) | public void onCallNone(String v1, int v2) {
    method onCall (line 12) | @RResult

FILE: demo/demo_component_detail_java/src/main/java/com/mars/component/detail/java/api/callback/Callbackable.java
  type Callbackable (line 5) | public interface Callbackable {
    method onCall (line 6) | void onCall(@Nullable String v1, int v2);

FILE: demo/demo_component_detail_java/src/main/java/com/mars/component/detail/java/test/TestJavaDataType.java
  class TestJavaDataType (line 13) | public class TestJavaDataType {
    method println (line 14) | private static void println(String msg) {
    method doTestDataType1 (line 18) | @RRoute(path = "doTestDataType1", forResult = true)
    method doTestDataType1_2 (line 25) | @RRoute(path = "doTestDataType1-2", forResult = true)
    method doTestDataType2 (line 32) | @RRoute(path = "doTestDataType2", forResult = true)
    method doTestDataType2_2 (line 39) | @RRoute(path = "doTestDataType2-2", forResult = true)
    method doTestDataType3 (line 45) | @RRoute(path = "doTestDataType3", forResult = true)
    method doTestDataType4 (line 52) | @RRoute(path = "doTestDataType4", forResult = true)
    method doTestDataType5 (line 59) | @RRoute(path = "doTestDataType5", forResult = true)
    method doTestDataType6 (line 66) | @RRoute(path = "doTestDataType6", forResult = true)
    method doTestDataType7 (line 73) | @RRoute(path = "doTestDataType7", forResult = true)

FILE: demo/demo_component_detail_java/src/main/java/com/mars/component/detail/java/ui/FirstPageActivity.java
  class FirstPageActivity (line 21) | @RPage(path = "activity/java_page1")
    method onCreate (line 36) | @Override

FILE: demo/demo_component_detail_java/src/main/java/com/mars/component/detail/java/ui/SecondActivity.java
  class SecondActivity (line 14) | @RPage(path = "activity/java_page2/{key_str1}/{key_str2}/{key_str3}")
    method onCreate (line 29) | @Override

FILE: demo/demo_component_detail_java/src/main/java/com/mars/component/detail/java/value/TestJavaBean.java
  class TestJavaBean (line 8) | @RValue
    method TestJavaBean (line 10) | public TestJavaBean(int d1, String d2) {

FILE: demo/demo_component_home/src/main/java/com/mars/component/home/test/java/TestJavaInvokeBuilderTask.java
  class TestJavaInvokeBuilderTask (line 13) | public class TestJavaInvokeBuilderTask {
    method invoke (line 14) | public void invoke(Context context, Function1<String, Unit> onFinish) {

FILE: demo/demo_component_home/src/main/java/com/mars/component/home/test/java/TestJavaInvokeFunctionTask.java
  class TestJavaInvokeFunctionTask (line 12) | public class TestJavaInvokeFunctionTask {
    method invoke (line 13) | public void invoke(Context context, Function1<String, Unit> onFinish) {

FILE: demo/demo_component_home/src/main/java/com/mars/component/home/test/java/TestJavaInvokeJavaFunctionTask.java
  class TestJavaInvokeJavaFunctionTask (line 10) | public class TestJavaInvokeJavaFunctionTask {
    method invoke (line 11) | public void invoke(Context context, Function1<String, Unit> onFinish) {

FILE: demo/demo_component_home/src/main/java/com/mars/component/home/ui/java/JavaHomeActivity.java
  class JavaHomeActivity (line 25) | public class JavaHomeActivity extends AppCompatActivity{
    method onCreate (line 29) | @Override

FILE: demo/demo_until_library_b/src/testex/java/com/x/Yx.java
  class Yx (line 3) | public class Yx {

FILE: rubik/rubik_annotations/src/main/java/com/rubik/annotations/route/function/RDefaultType.java
  class RDefaultType (line 3) | public class RDefaultType { }

FILE: rubik/rubik_kapt/src/main/java/com/rubik/apt/RContextProcessService.java
  class RContextProcessService (line 16) | @SupportedAnnotationTypes({
    method init (line 45) | @Override
    method process (line 53) | @Override
Condensed preview — 794 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (1,230K chars).
[
  {
    "path": "LICENSE",
    "chars": 11357,
    "preview": "                                 Apache License\n                           Version 2.0, January 2004\n                   "
  },
  {
    "path": "README.md",
    "chars": 4450,
    "preview": "\n<div align=\"center\">\n  <p> <img width=\"600\" src=\"https://user-images.githubusercontent.com/7745189/174275733-ff1ec56e-8"
  },
  {
    "path": "README_en.md",
    "chars": 7069,
    "preview": "\n<div align=\"center\">\n  <p> <img width=\"600\" src=\"https://user-images.githubusercontent.com/7745189/174275733-ff1ec56e-8"
  },
  {
    "path": "build.gradle",
    "chars": 3590,
    "preview": "// Top-level build file where you can add configuration options common to all sub-projects/modules.\napply plugin: 'rubik"
  },
  {
    "path": "demo/demo_component_detail/build.gradle",
    "chars": 1459,
    "preview": "apply plugin: 'com.android.library'\napply plugin: 'kotlin-android'\napply plugin: 'kotlin-android-extensions'\n\nandroid {\n"
  },
  {
    "path": "demo/demo_component_detail/consumer-rules.pro",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "demo/demo_component_detail/proguard-rules.pro",
    "chars": 751,
    "preview": "# Add project specific ProGuard rules here.\n# You can control the set of applied configuration files using the\n# proguar"
  },
  {
    "path": "demo/demo_component_detail/src/main/AndroidManifest.xml",
    "chars": 307,
    "preview": "<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    package=\"com.mars.component.detail\">\n    <appli"
  },
  {
    "path": "demo/demo_component_detail/src/main/java/com/mars/component/detail/api/AipsInCompanion.kt",
    "chars": 748,
    "preview": "package com.mars.component.detail.api\n\nimport com.rubik.annotations.route.RRoute\n\nclass AipsInCompanion {\n    companion "
  },
  {
    "path": "demo/demo_component_detail/src/main/java/com/mars/component/detail/api/AipsInTop.kt",
    "chars": 719,
    "preview": "package com.mars.component.detail.api\n\nimport com.mars.component.detail.value.TestDataBean\nimport com.rubik.annotations."
  },
  {
    "path": "demo/demo_component_detail/src/main/java/com/mars/component/detail/api/ApiSerialization.kt",
    "chars": 1884,
    "preview": "package com.mars.component.detail.api\n\nimport com.mars.component.detail.value.TestParcelizeBean\nimport com.mars.componen"
  },
  {
    "path": "demo/demo_component_detail/src/main/java/com/mars/component/detail/api/Apis.kt",
    "chars": 4625,
    "preview": "package com.mars.component.detail.api\n\nimport android.app.Activity\nimport android.content.Context\nimport android.view.Vi"
  },
  {
    "path": "demo/demo_component_detail/src/main/java/com/mars/component/detail/api/ApisAsyncReturn.kt",
    "chars": 3026,
    "preview": "package com.mars.component.detail.api\n\nimport com.mars.component.detail.value.TestDataBean\nimport com.rubik.annotations."
  },
  {
    "path": "demo/demo_component_detail/src/main/java/com/mars/component/detail/api/ApisBadCase.kt",
    "chars": 1471,
    "preview": "package com.mars.component.detail.api\n\nimport android.content.Context\nimport androidx.lifecycle.LiveData\nimport com.rubi"
  },
  {
    "path": "demo/demo_component_detail/src/main/java/com/mars/component/detail/api/ApisBigData.kt",
    "chars": 2890,
    "preview": "package com.mars.component.detail.api\n\nimport com.mars.component.detail.value.TestDataBean\nimport com.mars.component.det"
  },
  {
    "path": "demo/demo_component_detail/src/main/java/com/mars/component/detail/api/ApisExt.kt",
    "chars": 273,
    "preview": "package com.mars.component.detail.api\n\nimport com.rubik.annotations.route.RExtend\nimport com.rubik.annotations.route.RRo"
  },
  {
    "path": "demo/demo_component_detail/src/main/java/com/mars/component/detail/api/ApisProvideInstance.kt",
    "chars": 1615,
    "preview": "package com.mars.component.detail.api\n\n\nimport com.rubik.annotations.route.RInstance\nimport com.rubik.annotations.route."
  },
  {
    "path": "demo/demo_component_detail/src/main/java/com/mars/component/detail/api/ApisWithLiveData.kt",
    "chars": 1239,
    "preview": "package com.mars.component.detail.api\n\nimport android.os.Handler\nimport androidx.lifecycle.LiveData\nimport androidx.life"
  },
  {
    "path": "demo/demo_component_detail/src/main/java/com/mars/component/detail/api/ApisWithResultReceiver.kt",
    "chars": 1224,
    "preview": "package com.mars.component.detail.api\n\nimport android.os.Bundle\nimport android.os.Handler\nimport android.os.ResultReceiv"
  },
  {
    "path": "demo/demo_component_detail/src/main/java/com/mars/component/detail/callback/CallbackTestDefault.kt",
    "chars": 271,
    "preview": "package com.mars.component.detail.callback\n\n\nimport com.mars.component.detail.value.TestDataBean\nimport com.rubik.annota"
  },
  {
    "path": "demo/demo_component_detail/src/main/java/com/mars/component/detail/callback/CallbackTestInterface.kt",
    "chars": 724,
    "preview": "package com.mars.component.detail.callback\n\n\nimport com.mars.component.detail.value.TestDataBean\nimport com.rubik.annota"
  },
  {
    "path": "demo/demo_component_detail/src/main/java/com/mars/component/detail/event/Events.kt",
    "chars": 2629,
    "preview": "package com.mars.component.detail.event\n\nimport android.content.Context\nimport com.mars.component.detail.value.TestDataB"
  },
  {
    "path": "demo/demo_component_detail/src/main/java/com/mars/component/detail/objekt/ObjectTest.kt",
    "chars": 3387,
    "preview": "package com.mars.component.detail.objekt\n\n\nimport com.mars.component.detail.value.TestDataBean\nimport com.rubik.annotati"
  },
  {
    "path": "demo/demo_component_detail/src/main/java/com/mars/component/detail/objekt/ObjectTestCteate.kt",
    "chars": 638,
    "preview": "package com.mars.component.detail.objekt\n\n\nimport com.mars.component.detail.value.TestDataBean\nimport com.rubik.annotati"
  },
  {
    "path": "demo/demo_component_detail/src/main/java/com/mars/component/detail/test/TestDataTypeTask.kt",
    "chars": 6197,
    "preview": "package com.mars.component.detail.test\n\nimport android.content.Context\nimport com.mars.component.detail.value.TestNullab"
  },
  {
    "path": "demo/demo_component_detail/src/main/java/com/mars/component/detail/test/TestDefaultPathTask.kt",
    "chars": 462,
    "preview": "package com.mars.component.detail.test\n\nimport android.app.Activity\nimport com.rubik.annotations.route.RRoute\nimport com"
  },
  {
    "path": "demo/demo_component_detail/src/main/java/com/mars/component/detail/test/TestGenericityTask.kt",
    "chars": 1919,
    "preview": "package com.mars.component.detail.test\n\nimport androidx.lifecycle.LiveData\nimport com.mars.component.detail.value.TestNu"
  },
  {
    "path": "demo/demo_component_detail/src/main/java/com/mars/component/detail/ui/FirstPageActivity.kt",
    "chars": 3598,
    "preview": "package com.mars.component.detail.ui\n\nimport android.os.Bundle\nimport androidx.appcompat.app.AppCompatActivity\nimport co"
  },
  {
    "path": "demo/demo_component_detail/src/main/java/com/mars/component/detail/ui/FirstPageFragment.kt",
    "chars": 338,
    "preview": "package com.mars.component.detail.ui\n\nimport androidx.fragment.app.Fragment\nimport com.rubik.annotations.route.RRoute\nim"
  },
  {
    "path": "demo/demo_component_detail/src/main/java/com/mars/component/detail/ui/SecondPageActivity.kt",
    "chars": 1301,
    "preview": "package com.mars.component.detail.ui\n\nimport android.content.Intent\nimport android.os.Bundle\nimport androidx.appcompat.a"
  },
  {
    "path": "demo/demo_component_detail/src/main/java/com/mars/component/detail/value/TestCompanionBean.kt",
    "chars": 281,
    "preview": "package com.mars.component.detail.value\n\nimport com.rubik.annotations.route.RValue\n\n@RValue\ndata class TestCompanionBean"
  },
  {
    "path": "demo/demo_component_detail/src/main/java/com/mars/component/detail/value/TestCreateBean.kt",
    "chars": 362,
    "preview": "package com.mars.component.detail.value\n\nimport com.google.gson.annotations.SerializedName\nimport com.rubik.annotations."
  },
  {
    "path": "demo/demo_component_detail/src/main/java/com/mars/component/detail/value/TestDataBean.kt",
    "chars": 246,
    "preview": "package com.mars.component.detail.value\n\nimport com.rubik.annotations.route.RValue\nimport com.google.gson.annotations.Se"
  },
  {
    "path": "demo/demo_component_detail/src/main/java/com/mars/component/detail/value/TestDataNotRValueBean.kt",
    "chars": 247,
    "preview": "package com.mars.component.detail.value\n\nimport com.rubik.annotations.route.RValue\nimport com.google.gson.annotations.Se"
  },
  {
    "path": "demo/demo_component_detail/src/main/java/com/mars/component/detail/value/TestListBean.kt",
    "chars": 276,
    "preview": "package com.mars.component.detail.value\n\nimport com.rubik.annotations.route.RValue\nimport com.google.gson.annotations.Se"
  },
  {
    "path": "demo/demo_component_detail/src/main/java/com/mars/component/detail/value/TestNullableBean.kt",
    "chars": 252,
    "preview": "package com.mars.component.detail.value\n\nimport com.google.gson.annotations.SerializedName\nimport com.rubik.annotations."
  },
  {
    "path": "demo/demo_component_detail/src/main/java/com/mars/component/detail/value/TestOriginalBean.kt",
    "chars": 206,
    "preview": "package com.mars.component.detail.value\n\nimport java.io.Serializable\nimport com.rubik.annotations.source.ROriginalValue\n"
  },
  {
    "path": "demo/demo_component_detail/src/main/java/com/mars/component/detail/value/TestParcelizeBean.kt",
    "chars": 1004,
    "preview": "package com.mars.component.detail.value\n\nimport android.os.Parcel\nimport android.os.Parcelable\nimport com.google.gson.an"
  },
  {
    "path": "demo/demo_component_detail/src/main/java/com/mars/component/detail/value/TestSerializableBean.kt",
    "chars": 305,
    "preview": "package com.mars.component.detail.value\n\nimport com.google.gson.annotations.SerializedName\nimport com.rubik.annotations."
  },
  {
    "path": "demo/demo_component_detail/src/main/java/com/mars/component/detail/value/mapping/TestDataMappingBean.kt",
    "chars": 288,
    "preview": "package com.mars.component.detail.value.mapping\n\nimport com.google.gson.annotations.SerializedName\nimport com.rubik.anno"
  },
  {
    "path": "demo/demo_component_detail/src/main/java/com/mars/component/detail/value/mapping/TestNestDataMappingBean.kt",
    "chars": 373,
    "preview": "package com.mars.component.detail.value.mapping\n\nimport com.mars.component.detail.value.TestDataBean\nimport com.rubik.an"
  },
  {
    "path": "demo/demo_component_detail/src/main/ra/rubik/generate/aggregate/demo_com_mars_rubik_test_detail/DetailAggregate.kt",
    "chars": 142934,
    "preview": "package rubik.generate.aggregate.demo_com_mars_rubik_test_detail\n\nimport android.app.Activity\nimport android.content.Con"
  },
  {
    "path": "demo/demo_component_detail/src/main/res/layout/activity_a1.xml",
    "chars": 695,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<androidx.constraintlayout.widget.ConstraintLayout xmlns:android=\"http://schemas."
  },
  {
    "path": "demo/demo_component_detail/src/main/res/values/strings.xml",
    "chars": 73,
    "preview": "<resources>\n    <string name=\"app_name\">ComponentA</string>\n</resources>\n"
  },
  {
    "path": "demo/demo_component_detail_java/build.gradle",
    "chars": 1263,
    "preview": "apply plugin: 'com.android.library'\napply plugin: 'kotlin-android'\napply plugin: 'kotlin-android-extensions'\n\nandroid {\n"
  },
  {
    "path": "demo/demo_component_detail_java/consumer-rules.pro",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "demo/demo_component_detail_java/proguard-rules.pro",
    "chars": 750,
    "preview": "# Add project specific ProGuard rules here.\n# You can control the set of applied configuration files using the\n# proguar"
  },
  {
    "path": "demo/demo_component_detail_java/src/main/AndroidManifest.xml",
    "chars": 307,
    "preview": "<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    package=\"com.mars.component.detail.java\">\n    <"
  },
  {
    "path": "demo/demo_component_detail_java/src/main/aggregate/rubik/generate/aggregate/demo_com_mars_rubik_test_detail_java/DetailJavaAggregate.kt",
    "chars": 19087,
    "preview": "package rubik.generate.aggregate.demo_com_mars_rubik_test_detail_java\n\nimport android.content.Context\nimport androidx.an"
  },
  {
    "path": "demo/demo_component_detail_java/src/main/java/com/mars/component/detail/java/api/Apis.java",
    "chars": 756,
    "preview": "package com.mars.component.detail.java.api;\n\nimport com.rubik.annotations.route.RRoute;\n\npublic class Apis extends BaseA"
  },
  {
    "path": "demo/demo_component_detail_java/src/main/java/com/mars/component/detail/java/api/ApisAsyncReturn.java",
    "chars": 745,
    "preview": "package com.mars.component.detail.java.api;\n\nimport com.mars.component.detail.java.api.callback.Callback;\nimport com.mar"
  },
  {
    "path": "demo/demo_component_detail_java/src/main/java/com/mars/component/detail/java/api/ApisForInstance.java",
    "chars": 707,
    "preview": "package com.mars.component.detail.java.api;\n\nimport com.mars.component.detail.java.value.TestJavaBean;\nimport com.rubik."
  },
  {
    "path": "demo/demo_component_detail_java/src/main/java/com/mars/component/detail/java/api/BaseApis.java",
    "chars": 156,
    "preview": "package com.mars.component.detail.java.api;\n\npublic class BaseApis {\n    public static void println(String msg) {\n      "
  },
  {
    "path": "demo/demo_component_detail_java/src/main/java/com/mars/component/detail/java/api/callback/Callback.java",
    "chars": 329,
    "preview": "package com.mars.component.detail.java.api.callback;\n\nimport androidx.annotation.Nullable;\n\nimport com.rubik.annotations"
  },
  {
    "path": "demo/demo_component_detail_java/src/main/java/com/mars/component/detail/java/api/callback/Callbackable.java",
    "chars": 172,
    "preview": "package com.mars.component.detail.java.api.callback;\n\nimport androidx.annotation.Nullable;\n\npublic interface Callbackabl"
  },
  {
    "path": "demo/demo_component_detail_java/src/main/java/com/mars/component/detail/java/test/TestJavaDataType.java",
    "chars": 2356,
    "preview": "package com.mars.component.detail.java.test;\n\nimport android.content.Context;\n\nimport androidx.annotation.NonNull;\nimpor"
  },
  {
    "path": "demo/demo_component_detail_java/src/main/java/com/mars/component/detail/java/ui/FirstPageActivity.java",
    "chars": 1738,
    "preview": "package com.mars.component.detail.java.ui;\n\nimport java.util.ArrayList;\nimport java.util.List;\n\nimport android.os.Bundle"
  },
  {
    "path": "demo/demo_component_detail_java/src/main/java/com/mars/component/detail/java/ui/SecondActivity.java",
    "chars": 1352,
    "preview": "package com.mars.component.detail.java.ui;\n\nimport android.content.Intent;\nimport android.os.Bundle;\nimport android.widg"
  },
  {
    "path": "demo/demo_component_detail_java/src/main/java/com/mars/component/detail/java/value/TestJavaBean.java",
    "chars": 430,
    "preview": "package com.mars.component.detail.java.value;\n\nimport androidx.annotation.Nullable;\n\nimport com.google.gson.annotations."
  },
  {
    "path": "demo/demo_component_detail_java/src/main/res/layout/activity_d1.xml",
    "chars": 517,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<LinearLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\n  androi"
  },
  {
    "path": "demo/demo_component_detail_java/src/main/res/values/strings.xml",
    "chars": 73,
    "preview": "<resources>\n    <string name=\"app_name\">ComponentD</string>\n</resources>\n"
  },
  {
    "path": "demo/demo_component_home/build.gradle",
    "chars": 1094,
    "preview": "apply plugin: 'com.android.library'\napply plugin: 'kotlin-android'\napply plugin: 'kotlin-android-extensions'\n\nandroid {\n"
  },
  {
    "path": "demo/demo_component_home/consumer-rules.pro",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "demo/demo_component_home/proguard-rules.pro",
    "chars": 751,
    "preview": "# Add project specific ProGuard rules here.\n# You can control the set of applied configuration files using the\n# proguar"
  },
  {
    "path": "demo/demo_component_home/src/main/AndroidManifest.xml",
    "chars": 303,
    "preview": "<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    package=\"com.mars.component.home\" >\n    <applic"
  },
  {
    "path": "demo/demo_component_home/src/main/aggregate/rubik/generate/aggregate/demo_com_mars_rubik_test_home/HomeAggregate.kt",
    "chars": 4140,
    "preview": "package rubik.generate.aggregate.demo_com_mars_rubik_test_home\n\nimport androidx.annotation.Keep\nimport com.mars.componen"
  },
  {
    "path": "demo/demo_component_home/src/main/java/com/mars/component/home/api/TestOne.kt",
    "chars": 233,
    "preview": "package com.mars.component.home.api\n\nimport com.rubik.annotations.route.function.RFunction\n\nclass TestOne {\n    @RFuncti"
  },
  {
    "path": "demo/demo_component_home/src/main/java/com/mars/component/home/event/Events.kt",
    "chars": 397,
    "preview": "package com.mars.component.home.event\n\nimport com.rubik.annotations.context.REvent\nimport com.rubik.context.LifeCycleEve"
  },
  {
    "path": "demo/demo_component_home/src/main/java/com/mars/component/home/test/java/TestJavaInvokeBuilderTask.java",
    "chars": 1843,
    "preview": "package com.mars.component.home.test.java;\n\nimport android.content.Context;\n\nimport com.rubik.router.Router;\n\nimport kot"
  },
  {
    "path": "demo/demo_component_home/src/main/java/com/mars/component/home/test/java/TestJavaInvokeFunctionTask.java",
    "chars": 3066,
    "preview": "package com.mars.component.home.test.java;\n\nimport android.content.Context;\n\nimport androidx.annotation.Nullable;\nimport"
  },
  {
    "path": "demo/demo_component_home/src/main/java/com/mars/component/home/test/java/TestJavaInvokeJavaFunctionTask.java",
    "chars": 2057,
    "preview": "package com.mars.component.home.test.java;\n\nimport android.content.Context;\n\nimport kotlin.Unit;\nimport kotlin.jvm.funct"
  },
  {
    "path": "demo/demo_component_home/src/main/java/com/mars/component/home/test/kotlin/TestBigData.kt",
    "chars": 3508,
    "preview": "package com.mars.component.home.test.kotlin\n\nimport android.content.Context\nimport com.ktnail.x.Logger\nimport com.mars.u"
  },
  {
    "path": "demo/demo_component_home/src/main/java/com/mars/component/home/test/kotlin/TestDataType.kt",
    "chars": 3772,
    "preview": "package com.mars.component.home.test.kotlin\n\nimport android.content.Context\nimport com.rubik.logger.Logger\nimport com.ru"
  },
  {
    "path": "demo/demo_component_home/src/main/java/com/mars/component/home/test/kotlin/TestKotlinInvokeActionFunctionJavaTask.kt",
    "chars": 1593,
    "preview": "package com.mars.component.home.test.kotlin\n\nimport android.content.Context\nimport rubik.generate.context.demo_com_mars_"
  },
  {
    "path": "demo/demo_component_home/src/main/java/com/mars/component/home/test/kotlin/TestKotlinInvokeActionFunctionTask.kt",
    "chars": 10058,
    "preview": "package com.mars.component.home.test.kotlin\n\nimport android.content.Context\nimport android.os.Bundle\nimport android.os.H"
  },
  {
    "path": "demo/demo_component_home/src/main/java/com/mars/component/home/test/kotlin/TestKotlinInvokeDSLTask.kt",
    "chars": 10729,
    "preview": "package com.mars.component.home.test.kotlin\n\nimport android.content.Context\nimport android.os.Bundle\nimport android.os.H"
  },
  {
    "path": "demo/demo_component_home/src/main/java/com/mars/component/home/test/kotlin/TestKotlinInvokeRouteFunctionTask.kt",
    "chars": 6248,
    "preview": "package com.mars.component.home.test.kotlin\n\nimport android.content.Context\nimport android.os.Bundle\nimport android.os.H"
  },
  {
    "path": "demo/demo_component_home/src/main/java/com/mars/component/home/ui/HomeActivity.kt",
    "chars": 10027,
    "preview": "package com.mars.component.home.ui\n\nimport android.content.Intent\nimport android.os.Bundle\nimport androidx.appcompat.app"
  },
  {
    "path": "demo/demo_component_home/src/main/java/com/mars/component/home/ui/HomeFragment.kt",
    "chars": 2527,
    "preview": "package com.mars.component.home.ui;\n\nimport android.content.Intent\nimport android.os.Bundle\nimport android.view.LayoutIn"
  },
  {
    "path": "demo/demo_component_home/src/main/java/com/mars/component/home/ui/java/JavaHomeActivity.java",
    "chars": 5533,
    "preview": "package com.mars.component.home.ui.java;\n\nimport java.util.ArrayList;\nimport java.util.List;\n\nimport android.content.Int"
  },
  {
    "path": "demo/demo_component_home/src/main/res/layout/activity_java.xml",
    "chars": 3704,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<ScrollView xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    androi"
  },
  {
    "path": "demo/demo_component_home/src/main/res/layout/activity_kotlin.xml",
    "chars": 7086,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<ScrollView xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    androi"
  },
  {
    "path": "demo/demo_component_home/src/main/res/layout/fragment_b1.xml",
    "chars": 2242,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<LinearLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    andr"
  },
  {
    "path": "demo/demo_component_home/src/main/res/values/strings.xml",
    "chars": 73,
    "preview": "<resources>\n    <string name=\"app_name\">ComponentB</string>\n</resources>\n"
  },
  {
    "path": "demo/demo_root_app/build.gradle",
    "chars": 1692,
    "preview": "apply plugin: 'com.android.application'\napply plugin: 'kotlin-android'\napply plugin: 'kotlin-android-extensions'\n\nandroi"
  },
  {
    "path": "demo/demo_root_app/proguard-rules.pro",
    "chars": 751,
    "preview": "# Add project specific ProGuard rules here.\n# You can control the set of applied configuration files using the\n# proguar"
  },
  {
    "path": "demo/demo_root_app/src/androidTest/java/com/mars/component/test/RouterTestCase.kt",
    "chars": 2877,
    "preview": "package com.mars.component.test\n\nimport android.content.Intent\nimport androidx.test.ext.junit.runners.AndroidJUnit4\nimpo"
  },
  {
    "path": "demo/demo_root_app/src/main/AndroidManifest.xml",
    "chars": 719,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    package="
  },
  {
    "path": "demo/demo_root_app/src/main/java/com/baidu/kcomponent/MainActivity.kt",
    "chars": 1836,
    "preview": "package com.baidu.kcomponent\n\nimport android.content.Intent\nimport android.os.Bundle\nimport androidx.appcompat.app.AppCo"
  },
  {
    "path": "demo/demo_root_app/src/main/java/com/baidu/kcomponent/MainApplication.kt",
    "chars": 585,
    "preview": "package com.baidu.kcomponent\n\nimport android.app.Application\nimport android.util.Log\nimport com.rubik.Rubik\nimport rubik"
  },
  {
    "path": "demo/demo_root_app/src/main/res/drawable/ic_launcher_background.xml",
    "chars": 5606,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:wi"
  },
  {
    "path": "demo/demo_root_app/src/main/res/drawable-v24/ic_launcher_foreground.xml",
    "chars": 1880,
    "preview": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    xmlns:aapt=\"http://schemas.android.com/aapt\"\n    "
  },
  {
    "path": "demo/demo_root_app/src/main/res/layout/activity_main.xml",
    "chars": 2723,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<ScrollView xmlns:android=\"http://schemas.android.com/apk/res/android\"\nandroid:la"
  },
  {
    "path": "demo/demo_root_app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml",
    "chars": 272,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<adaptive-icon xmlns:android=\"http://schemas.android.com/apk/res/android\">\n    <b"
  },
  {
    "path": "demo/demo_root_app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml",
    "chars": 272,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<adaptive-icon xmlns:android=\"http://schemas.android.com/apk/res/android\">\n    <b"
  },
  {
    "path": "demo/demo_root_app/src/main/res/values/colors.xml",
    "chars": 208,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <color name=\"colorPrimary\">#008577</color>\n    <color name=\"color"
  },
  {
    "path": "demo/demo_root_app/src/main/res/values/strings.xml",
    "chars": 73,
    "preview": "<resources>\n    <string name=\"app_name\">RUBIK_DEMO</string>\n</resources>\n"
  },
  {
    "path": "demo/demo_root_app/src/main/res/values/styles.xml",
    "chars": 383,
    "preview": "<resources>\n\n    <!-- Base application theme. -->\n    <style name=\"AppTheme\" parent=\"Theme.AppCompat.Light.DarkActionBar"
  },
  {
    "path": "demo/demo_until_library_a/build.gradle",
    "chars": 1814,
    "preview": "plugins {\n    id 'com.android.library'\n    id 'org.jetbrains.kotlin.android'\n}\n\nandroid {\n    compileSdkVersion 30\n    b"
  },
  {
    "path": "demo/demo_until_library_a/consumer-rules.pro",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "demo/demo_until_library_a/proguard-rules.pro",
    "chars": 750,
    "preview": "# Add project specific ProGuard rules here.\n# You can control the set of applied configuration files using the\n# proguar"
  },
  {
    "path": "demo/demo_until_library_a/src/main/AndroidManifest.xml",
    "chars": 157,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\"\n  package=\"c"
  },
  {
    "path": "demo/demo_until_library_a/src/main/java/com/mars/util_library/TestClassA.kt",
    "chars": 139,
    "preview": "package com.mars.util_library\n\nclass TestClassA {\n    val testTag: String = \"test a!!!\"\n//    val b : TestClassB? =null\n"
  },
  {
    "path": "demo/demo_until_library_a/src/main/java/com/mars/util_library/TestLibDataBean.kt",
    "chars": 88,
    "preview": "package com.mars.util_library\n\ndata class TestLibDataBean(val d1: Int?, val d2: String?)"
  },
  {
    "path": "demo/demo_until_library_b/build.gradle",
    "chars": 1753,
    "preview": "plugins {\n    id 'com.android.library'\n    id 'org.jetbrains.kotlin.android'\n}\n\nandroid {\n    compileSdkVersion 30\n    b"
  },
  {
    "path": "demo/demo_until_library_b/consumer-rules.pro",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "demo/demo_until_library_b/proguard-rules.pro",
    "chars": 750,
    "preview": "# Add project specific ProGuard rules here.\n# You can control the set of applied configuration files using the\n# proguar"
  },
  {
    "path": "demo/demo_until_library_b/src/main/AndroidManifest.xml",
    "chars": 157,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\"\n  package=\"c"
  },
  {
    "path": "demo/demo_until_library_b/src/main/java/com/mars/util_library/TestClassB.kt",
    "chars": 182,
    "preview": "package com.mars.util_library\n\nimport com.x.Xx\nimport com.x.Yx\n\nclass TestClassB {\n    val testTag: String = \"test b!!!\""
  },
  {
    "path": "demo/demo_until_library_b/src/testex/java/com/x/Xx.kt",
    "chars": 44,
    "preview": "package com.x\n\nclass Xx {\n    val a =13211\n}"
  },
  {
    "path": "demo/demo_until_library_b/src/testex/java/com/x/Yx.java",
    "chars": 36,
    "preview": "package com.x;\n\npublic class Yx {\n}\n"
  },
  {
    "path": "demo/demo_until_library_c_java/build.gradle",
    "chars": 882,
    "preview": "plugins {\n    id 'com.android.library'\n    id 'kotlin-android'\n}\n\nandroid {\n    compileSdkVersion 30\n    buildToolsVersi"
  },
  {
    "path": "demo/demo_until_library_c_java/consumer-rules.pro",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "demo/demo_until_library_c_java/proguard-rules.pro",
    "chars": 750,
    "preview": "# Add project specific ProGuard rules here.\n# You can control the set of applied configuration files using the\n# proguar"
  },
  {
    "path": "demo/demo_until_library_c_java/src/main/AndroidManifest.xml",
    "chars": 172,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\"\n  package=\"c"
  },
  {
    "path": "demo/demo_until_library_c_java/src/main/java/TestClassC.kt",
    "chars": 112,
    "preview": "//import com.mars.util_library.TestClassB\n\nclass TestClassC {\n//    val testTag: String = TestClassB().testTag\n}"
  },
  {
    "path": "demo/rubik-components.gradle",
    "chars": 1289,
    "preview": "rubik {\n    global {\n\n        scheme 'demo'\n        group 'com.mars.rubik-test'\n\n        devMode true\n\n//      forceMave"
  },
  {
    "path": "demo/rubik-packing.gradle",
    "chars": 804,
    "preview": "// 本地本地的组件组合配置,覆盖云端配置\nrubik {\n    packing { // 被选择组合成app的组件\n\n//        mavenMode all\n\n        projectMode all\n\n        m"
  },
  {
    "path": "gradle/wrapper/gradle-wrapper.properties",
    "chars": 231,
    "preview": "#Fri Aug 20 12:44:46 CST 2021\ndistributionBase=GRADLE_USER_HOME\ndistributionPath=wrapper/dists\nzipStorePath=wrapper/dist"
  },
  {
    "path": "gradle.properties",
    "chars": 1187,
    "preview": "# Project-wide Gradle settings.\n# IDE (e.g. Android Studio) users:\n# Gradle settings configured through the IDE *will ov"
  },
  {
    "path": "gradlew",
    "chars": 5296,
    "preview": "#!/usr/bin/env sh\n\n##############################################################################\n##\n##  Gradle start up"
  },
  {
    "path": "gradlew.bat",
    "chars": 2176,
    "preview": "@if \"%DEBUG%\" == \"\" @echo off\n@rem ##########################################################################\n@rem\n@rem "
  },
  {
    "path": "rubik/rubik_annotations/build.gradle",
    "chars": 745,
    "preview": "apply plugin: 'java-library'\napply plugin: 'maven-publish'\n\ndependencies {\n    implementation fileTree(dir: 'libs', incl"
  },
  {
    "path": "rubik/rubik_annotations/src/main/java/com/rubik/annotations/context/REvent.java",
    "chars": 1174,
    "preview": "/**\n * Copyright (C) Baidu Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\""
  },
  {
    "path": "rubik/rubik_annotations/src/main/java/com/rubik/annotations/context/REventRepeatable.java",
    "chars": 1005,
    "preview": "/**\n * Copyright (C) Baidu Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\""
  },
  {
    "path": "rubik/rubik_annotations/src/main/java/com/rubik/annotations/context/assist/REventAssist.java",
    "chars": 1196,
    "preview": "/**\n * Copyright (C) Baidu Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\""
  },
  {
    "path": "rubik/rubik_annotations/src/main/java/com/rubik/annotations/context/assist/REventAssistRepeatable.java",
    "chars": 1036,
    "preview": "/**\n * Copyright (C) Baidu Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\""
  },
  {
    "path": "rubik/rubik_annotations/src/main/java/com/rubik/annotations/context/instance/REventInstance.java",
    "chars": 1154,
    "preview": "/**\n * Copyright (C) Baidu Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\""
  },
  {
    "path": "rubik/rubik_annotations/src/main/java/com/rubik/annotations/context/instance/REventInstanceRepeatable.java",
    "chars": 1042,
    "preview": "/**\n * Copyright (C) Baidu Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\""
  },
  {
    "path": "rubik/rubik_annotations/src/main/java/com/rubik/annotations/route/RCallback.java",
    "chars": 982,
    "preview": "/**\n * Copyright (C) Baidu Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\""
  },
  {
    "path": "rubik/rubik_annotations/src/main/java/com/rubik/annotations/route/RExtend.java",
    "chars": 913,
    "preview": "/**\n * Copyright (C) Baidu Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\""
  },
  {
    "path": "rubik/rubik_annotations/src/main/java/com/rubik/annotations/route/RInstance.java",
    "chars": 1194,
    "preview": "/**\n * Copyright (C) Baidu Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\""
  },
  {
    "path": "rubik/rubik_annotations/src/main/java/com/rubik/annotations/route/RInstanceRepeatable.java",
    "chars": 1009,
    "preview": "/**\n * Copyright (C) Baidu Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\""
  },
  {
    "path": "rubik/rubik_annotations/src/main/java/com/rubik/annotations/route/RObject.java",
    "chars": 963,
    "preview": "/**\n * Copyright (C) Baidu Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\""
  },
  {
    "path": "rubik/rubik_annotations/src/main/java/com/rubik/annotations/route/RProperty.java",
    "chars": 1029,
    "preview": "/**\n * Copyright (C) Baidu Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\""
  },
  {
    "path": "rubik/rubik_annotations/src/main/java/com/rubik/annotations/route/RResult.java",
    "chars": 933,
    "preview": "/**\n * Copyright (C) Baidu Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\""
  },
  {
    "path": "rubik/rubik_annotations/src/main/java/com/rubik/annotations/route/RRoute.java",
    "chars": 1437,
    "preview": "/**\n * Copyright (C) Baidu Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\""
  },
  {
    "path": "rubik/rubik_annotations/src/main/java/com/rubik/annotations/route/RRouteRepeatable.java",
    "chars": 1003,
    "preview": "/**\n * Copyright (C) Baidu Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\""
  },
  {
    "path": "rubik/rubik_annotations/src/main/java/com/rubik/annotations/route/RValue.java",
    "chars": 1011,
    "preview": "/**\n * Copyright (C) Baidu Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\""
  },
  {
    "path": "rubik/rubik_annotations/src/main/java/com/rubik/annotations/route/assist/RRouteAssist.java",
    "chars": 1217,
    "preview": "/**\n * Copyright (C) Baidu Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\""
  },
  {
    "path": "rubik/rubik_annotations/src/main/java/com/rubik/annotations/route/assist/RRouteAssistRepeatable.java",
    "chars": 1034,
    "preview": "/**\n * Copyright (C) Baidu Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\""
  },
  {
    "path": "rubik/rubik_annotations/src/main/java/com/rubik/annotations/route/function/RDefaultType.java",
    "chars": 77,
    "preview": "package com.rubik.annotations.route.function;\n\npublic class RDefaultType { }\n"
  },
  {
    "path": "rubik/rubik_annotations/src/main/java/com/rubik/annotations/route/function/RFunction.java",
    "chars": 1325,
    "preview": "/**\n * Copyright (C) Baidu Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\""
  },
  {
    "path": "rubik/rubik_annotations/src/main/java/com/rubik/annotations/route/function/RFunctionRepeatable.java",
    "chars": 1000,
    "preview": "/**\n * Copyright (C) Baidu Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\""
  },
  {
    "path": "rubik/rubik_annotations/src/main/java/com/rubik/annotations/route/instance/RRouteInstance.java",
    "chars": 1175,
    "preview": "/**\n * Copyright (C) Baidu Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\""
  },
  {
    "path": "rubik/rubik_annotations/src/main/java/com/rubik/annotations/route/instance/RRouteInstanceRepeatable.java",
    "chars": 1040,
    "preview": "/**\n * Copyright (C) Baidu Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\""
  },
  {
    "path": "rubik/rubik_annotations/src/main/java/com/rubik/annotations/route/page/RPage.java",
    "chars": 1123,
    "preview": "/**\n * Copyright (C) Baidu Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\""
  },
  {
    "path": "rubik/rubik_annotations/src/main/java/com/rubik/annotations/route/page/RPageRepeatable.java",
    "chars": 942,
    "preview": "/**\n * Copyright (C) Baidu Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\""
  },
  {
    "path": "rubik/rubik_annotations/src/main/java/com/rubik/annotations/source/RAggregate.java",
    "chars": 984,
    "preview": "/**\n * Copyright (C) Baidu Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\""
  },
  {
    "path": "rubik/rubik_annotations/src/main/java/com/rubik/annotations/source/RComponent.java",
    "chars": 1112,
    "preview": "/**\n * Copyright (C) Baidu Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\""
  },
  {
    "path": "rubik/rubik_annotations/src/main/java/com/rubik/annotations/source/RContext.java",
    "chars": 982,
    "preview": "/**\n * Copyright (C) Baidu Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\""
  },
  {
    "path": "rubik/rubik_annotations/src/main/java/com/rubik/annotations/source/RContextLib.java",
    "chars": 979,
    "preview": "/**\n * Copyright (C) Baidu Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\""
  },
  {
    "path": "rubik/rubik_annotations/src/main/java/com/rubik/annotations/source/RGenerated.java",
    "chars": 1068,
    "preview": "/**\n * Copyright (C) Baidu Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\""
  },
  {
    "path": "rubik/rubik_annotations/src/main/java/com/rubik/annotations/source/RGeneratedRouter.java",
    "chars": 1043,
    "preview": "/**\n * Copyright (C) Baidu Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\""
  },
  {
    "path": "rubik/rubik_annotations/src/main/java/com/rubik/annotations/source/RGeneratedValue.java",
    "chars": 996,
    "preview": "/**\n * Copyright (C) Baidu Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\""
  },
  {
    "path": "rubik/rubik_annotations/src/main/java/com/rubik/annotations/source/ROriginalValue.java",
    "chars": 993,
    "preview": "/**\n * Copyright (C) Baidu Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\""
  },
  {
    "path": "rubik/rubik_context/build.gradle",
    "chars": 1088,
    "preview": "apply plugin: 'java-library'\napply plugin: 'kotlin'\napply plugin: 'maven-publish'\n\ndependencies {\n    implementation fil"
  },
  {
    "path": "rubik/rubik_context/src/main/java/com/rubik/context/Dependency.kt",
    "chars": 100,
    "preview": "package com.rubik.context\n\n\ndata class Dependency(\n    val uri: String,\n    val forFlavor: String?\n)"
  },
  {
    "path": "rubik/rubik_context/src/main/java/com/rubik/context/Ext.kt",
    "chars": 3317,
    "preview": "package com.rubik.context\n\n\nobject Ext {\n    const val RUBIK_TMP_LIB_DIR = \"rubik_tmp_lib_dir\"\n    const val RUBIK_TMP_L"
  },
  {
    "path": "rubik/rubik_context/src/main/java/com/rubik/context/MavenSource.kt",
    "chars": 342,
    "preview": "package com.rubik.context\n\ndata class MavenSource(\n    var version: String?,\n    var variant: String?,\n    val flavors: "
  },
  {
    "path": "rubik/rubik_context/src/main/java/com/rubik/context/Source.kt",
    "chars": 287,
    "preview": "package com.rubik.context\n\nimport com.ktnail.x.command.Command\n\ndata class Source(\n    var projectPath: String?,\n    val"
  },
  {
    "path": "rubik/rubik_context/src/main/java/com/rubik/context/container/ContextsContainer.kt",
    "chars": 1822,
    "preview": "package com.rubik.context.container\n\nimport com.ktnail.x.Logger\nimport com.rubik.context.extra.Context\nimport com.rubik."
  },
  {
    "path": "rubik/rubik_context/src/main/java/com/rubik/context/exception/RubikComponentUndefinedException.kt",
    "chars": 1005,
    "preview": "/**\n * Copyright (C) Baidu Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\""
  },
  {
    "path": "rubik/rubik_context/src/main/java/com/rubik/context/exception/RubikDSLDefaultGroupNotSetException.kt",
    "chars": 1019,
    "preview": "/**\n * Copyright (C) Baidu Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\""
  },
  {
    "path": "rubik/rubik_context/src/main/java/com/rubik/context/exception/RubikDSLDefaultSchemeNotSetException.kt",
    "chars": 1015,
    "preview": "/**\n * Copyright (C) Baidu Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\""
  },
  {
    "path": "rubik/rubik_context/src/main/java/com/rubik/context/exception/RubikMultipleComponentDefinedException.kt",
    "chars": 1006,
    "preview": "/**\n * Copyright (C) Baidu Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\""
  },
  {
    "path": "rubik/rubik_context/src/main/java/com/rubik/context/exception/RubikPluginNotApplyException.kt",
    "chars": 892,
    "preview": "/**\n * Copyright (C) Baidu Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\""
  },
  {
    "path": "rubik/rubik_context/src/main/java/com/rubik/context/extra/Context.kt",
    "chars": 1258,
    "preview": "package com.rubik.context.extra\n\nimport com.ktnail.x.uri.toSchemeAndAuthority\nimport com.rubik.context.Dependency\nimport"
  },
  {
    "path": "rubik/rubik_context/src/main/java/com/rubik/context/extra/Injector.kt",
    "chars": 652,
    "preview": "package com.rubik.context.extra\n\nimport com.rubik.context.container.ContextsContainer\nimport com.rubik.global.GlobalConf"
  },
  {
    "path": "rubik/rubik_context/src/main/java/com/rubik/context/extra/Rubik.kt",
    "chars": 2804,
    "preview": "package com.rubik.context.extra\n\nimport com.android.build.gradle.api.BaseVariant\nimport com.android.builder.model.BuildT"
  },
  {
    "path": "rubik/rubik_context/src/main/java/com/rubik/context/folder/ClassesTmpDir.kt",
    "chars": 810,
    "preview": "package com.rubik.context.folder\n\nimport com.ktnail.x.uriToSnake\nimport org.gradle.api.Project\nimport java.io.File\n\npriv"
  },
  {
    "path": "rubik/rubik_context/src/main/java/com/rubik/context/folder/GeneratedSourceDir.kt",
    "chars": 553,
    "preview": "package com.rubik.context.folder\n\nimport com.ktnail.x.uriToSnake\nimport org.gradle.api.Project\nimport java.io.File\n\npriv"
  },
  {
    "path": "rubik/rubik_context/src/main/java/com/rubik/context/folder/LibsTmpDir.kt",
    "chars": 664,
    "preview": "package com.rubik.context.folder\n\nimport com.ktnail.x.uriToSnake\nimport java.io.File\n\nfun getLibsTmpDirPath(libTmpDirRoo"
  },
  {
    "path": "rubik/rubik_context/src/main/java/com/rubik/context/id/ContextIdHolder.kt",
    "chars": 1086,
    "preview": "package com.rubik.context.id\n\nimport com.rubik.context.extra.Context\n\nclass ContextIdHolder(val context: Context) {\n    "
  },
  {
    "path": "rubik/rubik_context/src/main/java/com/rubik/context/id/LeastContext.kt",
    "chars": 335,
    "preview": "package com.rubik.context.id\n\nimport com.google.gson.Gson\nimport com.google.gson.annotations.SerializedName\n\nclass Least"
  },
  {
    "path": "rubik/rubik_context/src/main/java/com/rubik/context/log/LogTags.kt",
    "chars": 248,
    "preview": "package com.rubik.context.log\n\nimport com.ktnail.x.LogTag\nimport com.ktnail.x.Logger\n\nobject LogTags {\n    val CONTEXT ="
  },
  {
    "path": "rubik/rubik_context/src/main/java/com/rubik/context/publication/BuildType.kt",
    "chars": 192,
    "preview": "package com.rubik.context.publication\n\nobject BuildType {\n    const val CONTEXT_LIB_BUILD_TYPE_NAME = \"RContextLib\"\n    "
  },
  {
    "path": "rubik/rubik_context/src/main/java/com/rubik/context/publication/LibType.kt",
    "chars": 189,
    "preview": "package com.rubik.context.publication\n\nobject LibType {\n    const val CONTEXT = \"context\"\n    const val ORIGINAL_VALUE ="
  },
  {
    "path": "rubik/rubik_context/src/main/java/com/rubik/context/router/RouterRegister.kt",
    "chars": 113,
    "preview": "package com.rubik.context.router\n\nenum class RouterRegister {\n    NONE,\n    NEW_INSTANCE,\n    REFLECT_INSTANCE,\n}"
  },
  {
    "path": "rubik/rubik_context/src/main/java/com/rubik/context/utility/KApt.kt",
    "chars": 2210,
    "preview": "package com.rubik.context.utility\n\nimport com.android.build.gradle.api.BaseVariant\nimport com.ktnail.x.uriToSnake\nimport"
  },
  {
    "path": "rubik/rubik_context/src/main/java/com/rubik/context/utility/Module.kt",
    "chars": 347,
    "preview": "package com.rubik.context.utility\n\nopen class Module<T : ModuleInjector> {\n    private var inj: (() -> T)? = null\n\n    f"
  },
  {
    "path": "rubik/rubik_context/src/main/java/com/rubik/context/utility/Uri.kt",
    "chars": 896,
    "preview": "package com.rubik.context.utility\n\nimport com.ktnail.x.uri.buildUri\nimport com.rubik.context.exception.RubikDSLDefaultGr"
  },
  {
    "path": "rubik/rubik_context/src/main/java/com/rubik/global/GlobalConfig.kt",
    "chars": 2075,
    "preview": "package com.rubik.global\n\nimport com.rubik.context.MavenSource\nimport com.rubik.context.mergeOther\nimport com.rubik.cont"
  },
  {
    "path": "rubik/rubik_dsl/build.gradle",
    "chars": 835,
    "preview": "apply plugin: 'java-library'\napply plugin: 'kotlin'\n\ndependencies {\n    implementation fileTree(dir: 'libs', include: ['"
  },
  {
    "path": "rubik/rubik_dsl/src/main/java/com/rubik/dsl/DSLRubik.kt",
    "chars": 3834,
    "preview": "package com.rubik.dsl\n\nimport com.rubik.context.extra.Context\nimport com.rubik.dsl.context.DSLContext\nimport com.rubik.d"
  },
  {
    "path": "rubik/rubik_dsl/src/main/java/com/rubik/dsl/RDSL.java",
    "chars": 913,
    "preview": "/**\n * Copyright (C) Baidu Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\""
  },
  {
    "path": "rubik/rubik_dsl/src/main/java/com/rubik/dsl/context/DSLContext.kt",
    "chars": 3246,
    "preview": "package com.rubik.dsl.context\n\nimport com.rubik.context.extra.Context\nimport com.rubik.dsl.DSLRubik\nimport com.rubik.dsl"
  },
  {
    "path": "rubik/rubik_dsl/src/main/java/com/rubik/dsl/context/dependency/DSLDependencies.kt",
    "chars": 2448,
    "preview": "package com.rubik.dsl.context.dependency\n\nimport com.ktnail.x.uri.buildUri\nimport com.rubik.context.Dependency\nimport co"
  },
  {
    "path": "rubik/rubik_dsl/src/main/java/com/rubik/dsl/context/dependency/DSLDependency.kt",
    "chars": 289,
    "preview": "package com.rubik.dsl.context.dependency\n\nimport com.rubik.dsl.RDSL\n\n\nopen class DSLDependency(val uri: String) {\n\n    v"
  },
  {
    "path": "rubik/rubik_dsl/src/main/java/com/rubik/dsl/context/source/DSLMavenSource.kt",
    "chars": 1016,
    "preview": "package com.rubik.dsl.context.source\n\nimport com.rubik.context.MavenSource\nimport com.rubik.dsl.RDSL\nimport com.rubik.ds"
  },
  {
    "path": "rubik/rubik_dsl/src/main/java/com/rubik/dsl/context/source/DSLProjectSource.kt",
    "chars": 700,
    "preview": "package com.rubik.dsl.context.source\n\nimport com.rubik.dsl.RDSL\nimport com.synccode.command.dsl.DSLGit\n\n\nopen class DSLP"
  },
  {
    "path": "rubik/rubik_dsl/src/main/java/com/rubik/dsl/context/source/DSLSource.kt",
    "chars": 1508,
    "preview": "package com.rubik.dsl.context.source\n\n\nimport com.ktnail.gradle.projectPathToFilePath\nimport com.rubik.context.Source\nim"
  },
  {
    "path": "rubik/rubik_dsl/src/main/java/com/rubik/dsl/exception/RubikDSLComponentUriException.kt",
    "chars": 1154,
    "preview": "/**\n * Copyright (C) Baidu Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\""
  },
  {
    "path": "rubik/rubik_dsl/src/main/java/com/rubik/dsl/global/DSLGlobalConfig.kt",
    "chars": 2280,
    "preview": "package com.rubik.dsl.global\n\nimport com.rubik.dsl.RDSL\nimport com.rubik.global.GlobalConfig\nimport groovy.lang.Closure\n"
  },
  {
    "path": "rubik/rubik_dsl/src/main/java/com/rubik/dsl/global/DSLGlobalContextConfig.kt",
    "chars": 253,
    "preview": "package com.rubik.dsl.global\n\nimport com.rubik.dsl.context.source.DSLMavenSource\n\nopen class DSLGlobalContextConfig : DS"
  },
  {
    "path": "rubik/rubik_dsl/src/main/java/com/rubik/dsl/global/DSLGlobalMavenConfig.kt",
    "chars": 2053,
    "preview": "package com.rubik.dsl.global\n\nimport com.rubik.dsl.RDSL\nimport com.rubik.global.GlobalConfig\nimport groovy.lang.Closure\n"
  },
  {
    "path": "rubik/rubik_dsl/src/main/java/com/rubik/dsl/packing/DSLExcept.kt",
    "chars": 962,
    "preview": "package com.rubik.dsl.packing\n\nimport com.rubik.dsl.DSLRubik\nimport com.rubik.dsl.RDSL\nimport com.rubik.pick.ByTag\nimpor"
  },
  {
    "path": "rubik/rubik_dsl/src/main/java/com/rubik/dsl/packing/DSLPacking.kt",
    "chars": 3797,
    "preview": "package com.rubik.dsl.packing\n\nimport com.rubik.context.router.RouterRegister\nimport com.rubik.dsl.DSLRubik\nimport com.r"
  },
  {
    "path": "rubik/rubik_dsl/src/main/java/com/rubik/dsl/packing/DSLPackingHow.kt",
    "chars": 2359,
    "preview": "package com.rubik.dsl.packing\n\nimport com.rubik.context.router.RouterRegister\nimport com.rubik.dsl.RDSL\nimport com.rubik"
  },
  {
    "path": "rubik/rubik_dsl/src/main/java/com/rubik/dsl/packing/DSLPackingNoSource.kt",
    "chars": 497,
    "preview": "package com.rubik.dsl.packing\n\nimport com.rubik.dsl.RDSL\n\n\nopen class DSLPackingNoSource {\n\n    @set:RDSL\n    var enable"
  }
]

// ... and 594 more files (download for full content)

About this extraction

This page contains the full source code of the baidu/Rubik GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 794 files (1.0 MB), approximately 315.6k tokens, and a symbol index with 46 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!