1
1
package org.utbot.framework.codegen.services.language
2
2
3
- import org.utbot.framework.codegen.domain.ProjectType
4
3
import org.utbot.framework.codegen.domain.context.TestClassContext
5
4
import org.utbot.framework.codegen.domain.context.CgContext
6
5
import org.utbot.framework.codegen.renderer.CgPrinter
@@ -16,11 +15,10 @@ import org.utbot.framework.codegen.tree.CgMethodConstructor
16
15
import org.utbot.framework.codegen.tree.CgStatementConstructor
17
16
import org.utbot.framework.codegen.tree.CgStatementConstructorImpl
18
17
import org.utbot.framework.codegen.tree.CgVariableConstructor
19
- import org.utbot.framework.codegen.tree.CgSpringVariableConstructor
20
18
import org.utbot.framework.plugin.api.ClassId
21
19
import org.utbot.framework.plugin.api.CodegenLanguage
22
20
23
- abstract class CgLanguageAssistant {
21
+ interface CgLanguageAssistant {
24
22
25
23
companion object {
26
24
fun getByCodegenLanguage (language : CodegenLanguage ) = when (language) {
@@ -30,31 +28,41 @@ abstract class CgLanguageAssistant {
30
28
}
31
29
}
32
30
33
- open val outerMostTestClassContent: TestClassContext ? = null
31
+ val outerMostTestClassContent: TestClassContext ?
34
32
35
- abstract val extension: String
33
+ val extension: String
36
34
37
- abstract val languageKeywords: Set <String >
35
+ val languageKeywords: Set <String >
38
36
39
- abstract fun testClassName (
37
+ fun testClassName (
40
38
testClassCustomName : String? ,
41
39
testClassPackageName : String ,
42
40
classUnderTest : ClassId
43
41
): Pair <String , String >
44
42
45
- open fun getNameGeneratorBy (context : CgContext ): CgNameGenerator = CgNameGeneratorImpl (context)
46
- open fun getCallableAccessManagerBy (context : CgContext ): CgCallableAccessManager =
47
- CgCallableAccessManagerImpl (context)
48
- open fun getStatementConstructorBy (context : CgContext ): CgStatementConstructor = CgStatementConstructorImpl (context)
43
+ fun getNameGeneratorBy (context : CgContext ): CgNameGenerator
44
+ fun getCallableAccessManagerBy (context : CgContext ): CgCallableAccessManager
45
+ fun getStatementConstructorBy (context : CgContext ): CgStatementConstructor
49
46
50
- open fun getVariableConstructorBy (context : CgContext ): CgVariableConstructor = when (context.projectType) {
51
- ProjectType .Spring -> CgSpringVariableConstructor (context)
52
- else -> CgVariableConstructor (context)
53
- }
47
+ fun getVariableConstructorBy (context : CgContext ): CgVariableConstructor
48
+
49
+ fun getMethodConstructorBy (context : CgContext ): CgMethodConstructor
50
+ fun getCgFieldStateManager (context : CgContext ): CgFieldStateManager
51
+
52
+ fun getLanguageTestFrameworkManager (): LanguageTestFrameworkManager
53
+ fun cgRenderer (context : CgRendererContext , printer : CgPrinter ): CgAbstractRenderer
54
+ }
55
+
56
+ abstract class AbstractCgLanguageAssistant : CgLanguageAssistant {
57
+ override val outerMostTestClassContent: TestClassContext ? get() = null
58
+
59
+ override fun getNameGeneratorBy (context : CgContext ): CgNameGenerator = CgNameGeneratorImpl (context)
60
+ override fun getCallableAccessManagerBy (context : CgContext ): CgCallableAccessManager =
61
+ CgCallableAccessManagerImpl (context)
62
+ override fun getStatementConstructorBy (context : CgContext ): CgStatementConstructor = CgStatementConstructorImpl (context)
54
63
55
- open fun getMethodConstructorBy (context : CgContext ): CgMethodConstructor = CgMethodConstructor (context)
56
- open fun getCgFieldStateManager (context : CgContext ): CgFieldStateManager = CgFieldStateManagerImpl (context)
64
+ override fun getVariableConstructorBy (context : CgContext ): CgVariableConstructor = CgVariableConstructor (context)
57
65
58
- abstract fun getLanguageTestFrameworkManager ( ): LanguageTestFrameworkManager
59
- abstract fun cgRenderer (context : CgRendererContext , printer : CgPrinter ): CgAbstractRenderer
66
+ override fun getMethodConstructorBy ( context : CgContext ): CgMethodConstructor = CgMethodConstructor (context)
67
+ override fun getCgFieldStateManager (context : CgContext ): CgFieldStateManager = CgFieldStateManagerImpl (context)
60
68
}
0 commit comments