Skip to content

Commit 9005945

Browse files
authored
Merge pull request #275 from wuseal/3.6.0/feature/disableDataClass
3.6.0/feature/disable data class
2 parents 42d565f + 8ef4e32 commit 9005945

File tree

45 files changed

+317
-128
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+317
-128
lines changed
Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,9 @@
11
package extensions
22

33
import extensions.chen.biao.KeepAnnotationSupport
4-
import extensions.wu.seal.KeepAnnotationSupportForAndroidX
54
import extensions.jose.han.ParcelableAnnotationSupport
65
import extensions.ted.zeng.PropertyAnnotationLineSupport
7-
import extensions.wu.seal.ClassNameSuffixSupport
8-
import extensions.wu.seal.ForceInitDefaultValueWithOriginJsonValueSupport
9-
import extensions.wu.seal.PropertyPrefixSupport
10-
import extensions.wu.seal.PropertySuffixSupport
6+
import extensions.wu.seal.*
117
import extensions.xu.rui.PrimitiveTypeNonNullableSupport
128

139
/**
@@ -18,14 +14,15 @@ object ExtensionsCollector {
1814
* all extensions
1915
*/
2016
val extensions = listOf(
21-
KeepAnnotationSupport,
22-
KeepAnnotationSupportForAndroidX,
23-
PropertyAnnotationLineSupport,
24-
ParcelableAnnotationSupport,
25-
PropertyPrefixSupport,
26-
PropertySuffixSupport,
27-
ClassNameSuffixSupport,
28-
PrimitiveTypeNonNullableSupport,
29-
ForceInitDefaultValueWithOriginJsonValueSupport
17+
KeepAnnotationSupport,
18+
KeepAnnotationSupportForAndroidX,
19+
PropertyAnnotationLineSupport,
20+
ParcelableAnnotationSupport,
21+
PropertyPrefixSupport,
22+
PropertySuffixSupport,
23+
ClassNameSuffixSupport,
24+
PrimitiveTypeNonNullableSupport,
25+
ForceInitDefaultValueWithOriginJsonValueSupport,
26+
DisableDataClassSupport
3027
)
3128
}

src/main/kotlin/extensions/chen/biao/KeepAnnotationSupport.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package extensions.chen.biao
33
import extensions.Extension
44
import wu.seal.jsontokotlin.model.classscodestruct.Annotation
55
import wu.seal.jsontokotlin.model.classscodestruct.KotlinClass
6-
import wu.seal.jsontokotlin.model.classscodestruct.KotlinDataClass
6+
import wu.seal.jsontokotlin.model.classscodestruct.DataClass
77
import wu.seal.jsontokotlin.ui.checkBox
88
import wu.seal.jsontokotlin.ui.horizontalLinearLayout
99
import javax.swing.JPanel
@@ -33,7 +33,7 @@ object KeepAnnotationSupport : Extension() {
3333

3434
override fun intercept(kotlinClass: KotlinClass): KotlinClass {
3535

36-
if (kotlinClass is KotlinDataClass) {
36+
if (kotlinClass is DataClass) {
3737
return if (getConfig(configKey).toBoolean()) {
3838

3939
val classAnnotationString = "@Keep"

src/main/kotlin/extensions/jose/han/ParcelableAnnotationSupport.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package extensions.jose.han
33
import extensions.Extension
44
import wu.seal.jsontokotlin.model.classscodestruct.Annotation
55
import wu.seal.jsontokotlin.model.classscodestruct.KotlinClass
6-
import wu.seal.jsontokotlin.model.classscodestruct.KotlinDataClass
6+
import wu.seal.jsontokotlin.model.classscodestruct.DataClass
77
import wu.seal.jsontokotlin.ui.checkBox
88
import wu.seal.jsontokotlin.ui.horizontalLinearLayout
99
import wu.seal.jsontokotlin.ui.link
@@ -33,7 +33,7 @@ object ParcelableAnnotationSupport : Extension() {
3333

3434
override fun intercept(kotlinClass: KotlinClass): KotlinClass {
3535

36-
if (kotlinClass is KotlinDataClass) {
36+
if (kotlinClass is DataClass) {
3737
if (getConfig(configKey).toBoolean()) {
3838

3939
val classAnnotationString1 = "@SuppressLint(\"ParcelCreator\")"

src/main/kotlin/extensions/ted/zeng/PropertyAnnotationLineSupport.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package extensions.ted.zeng
22

33
import extensions.Extension
44
import wu.seal.jsontokotlin.model.classscodestruct.KotlinClass
5-
import wu.seal.jsontokotlin.model.classscodestruct.KotlinDataClass
5+
import wu.seal.jsontokotlin.model.classscodestruct.DataClass
66
import wu.seal.jsontokotlin.model.classscodestruct.Property
77
import wu.seal.jsontokotlin.ui.checkBox
88
import wu.seal.jsontokotlin.ui.horizontalLinearLayout
@@ -30,7 +30,7 @@ object PropertyAnnotationLineSupport : Extension() {
3030

3131
override fun intercept(kotlinClass: KotlinClass): KotlinClass {
3232

33-
return if (kotlinClass is KotlinDataClass) {
33+
return if (kotlinClass is DataClass) {
3434
if (getConfig(configKey).toBoolean()) {
3535
kotlinClass.properties.forEach(Property::letLastAnnotationStayInSameLine)
3636
}

src/main/kotlin/extensions/wu/seal/ClassNameSuffixSupport.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package extensions.wu.seal
22

33
import extensions.Extension
44
import wu.seal.jsontokotlin.model.classscodestruct.KotlinClass
5-
import wu.seal.jsontokotlin.model.classscodestruct.KotlinDataClass
5+
import wu.seal.jsontokotlin.model.classscodestruct.DataClass
66
import wu.seal.jsontokotlin.ui.NamingConventionDocument
77
import wu.seal.jsontokotlin.ui.checkBox
88
import wu.seal.jsontokotlin.ui.horizontalLinearLayout
@@ -42,7 +42,7 @@ object ClassNameSuffixSupport : Extension() {
4242

4343
override fun intercept(kotlinClass: KotlinClass): KotlinClass {
4444

45-
return if (kotlinClass is KotlinDataClass) {
45+
return if (kotlinClass is DataClass) {
4646
val suffix = getConfig(suffixKey)
4747
return if (getConfig(suffixKeyEnable).toBoolean() && suffix.isNotEmpty()) {
4848
val standTypes = listOf("Int", "Double", "Long", "String", "Boolean")
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package extensions.wu.seal
2+
3+
import extensions.Extension
4+
import wu.seal.jsontokotlin.model.classscodestruct.DataClass
5+
import wu.seal.jsontokotlin.model.classscodestruct.KotlinClass
6+
import wu.seal.jsontokotlin.model.classscodestruct.NormalClass
7+
import wu.seal.jsontokotlin.ui.checkBox
8+
import wu.seal.jsontokotlin.ui.horizontalLinearLayout
9+
import javax.swing.JPanel
10+
11+
/**
12+
* Extension support disable kotlin data class, after enable this, all kotlin data classes will be changed to [NormalClass]
13+
*/
14+
object DisableDataClassSupport : Extension() {
15+
16+
const val configKey = "wu.seal.disable_data_class_support"
17+
18+
override fun createUI(): JPanel {
19+
20+
return horizontalLinearLayout {
21+
checkBox(
22+
"Disable Kotlin Data Class",
23+
getConfig(configKey).toBoolean()
24+
) { isSelectedAfterClick ->
25+
setConfig(configKey, isSelectedAfterClick.toString())
26+
}()
27+
fillSpace()
28+
}
29+
}
30+
31+
override fun intercept(kotlinClass: KotlinClass): KotlinClass {
32+
33+
if (kotlinClass is DataClass && getConfig(configKey).toBoolean()) {
34+
with(kotlinClass) {
35+
return NormalClass(annotations, name, properties, parentClassTemplate, modifiable)
36+
}
37+
} else {
38+
return kotlinClass
39+
}
40+
}
41+
}

src/main/kotlin/extensions/wu/seal/ForceInitDefaultValueWithOriginJsonValueSupport.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package extensions.wu.seal
22

33
import extensions.Extension
44
import wu.seal.jsontokotlin.model.classscodestruct.KotlinClass
5-
import wu.seal.jsontokotlin.model.classscodestruct.KotlinDataClass
5+
import wu.seal.jsontokotlin.model.classscodestruct.DataClass
66
import wu.seal.jsontokotlin.model.codeelements.getDefaultValue
77
import wu.seal.jsontokotlin.ui.checkBox
88
import wu.seal.jsontokotlin.ui.horizontalLinearLayout
@@ -36,7 +36,7 @@ object ForceInitDefaultValueWithOriginJsonValueSupport : Extension() {
3636

3737
override fun intercept(kotlinClass: KotlinClass): KotlinClass {
3838

39-
if (kotlinClass is KotlinDataClass) {
39+
if (kotlinClass is DataClass) {
4040

4141
return if (getConfig(configKey).toBoolean()) {
4242
val newP = kotlinClass.properties.map {

src/main/kotlin/extensions/wu/seal/KeepAnnotationSupportForAndroidX.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package extensions.wu.seal
33
import extensions.Extension
44
import wu.seal.jsontokotlin.model.classscodestruct.Annotation
55
import wu.seal.jsontokotlin.model.classscodestruct.KotlinClass
6-
import wu.seal.jsontokotlin.model.classscodestruct.KotlinDataClass
6+
import wu.seal.jsontokotlin.model.classscodestruct.DataClass
77
import wu.seal.jsontokotlin.ui.checkBox
88
import wu.seal.jsontokotlin.ui.horizontalLinearLayout
99
import javax.swing.JPanel
@@ -32,7 +32,7 @@ object KeepAnnotationSupportForAndroidX : Extension() {
3232

3333
override fun intercept(kotlinClass: KotlinClass): KotlinClass {
3434

35-
if (kotlinClass is KotlinDataClass) {
35+
if (kotlinClass is DataClass) {
3636
return if (getConfig(configKey).toBoolean()) {
3737

3838
val classAnnotationString = "@Keep"

src/main/kotlin/extensions/wu/seal/PropertyPrefixSupport.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package extensions.wu.seal
22

33
import extensions.Extension
44
import wu.seal.jsontokotlin.model.classscodestruct.KotlinClass
5-
import wu.seal.jsontokotlin.model.classscodestruct.KotlinDataClass
5+
import wu.seal.jsontokotlin.model.classscodestruct.DataClass
66
import wu.seal.jsontokotlin.ui.NamingConventionDocument
77
import wu.seal.jsontokotlin.ui.checkBox
88
import wu.seal.jsontokotlin.ui.horizontalLinearLayout
@@ -34,7 +34,7 @@ object PropertyPrefixSupport : Extension() {
3434

3535
override fun intercept(kotlinClass: KotlinClass): KotlinClass {
3636

37-
if (kotlinClass is KotlinDataClass) {
37+
if (kotlinClass is DataClass) {
3838

3939
return if (getConfig(prefixKeyEnable).toBoolean() && getConfig(prefixKey).isNotEmpty()) {
4040
val originProperties = kotlinClass.properties

src/main/kotlin/extensions/wu/seal/PropertySuffixSupport.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package extensions.wu.seal
22

33
import extensions.Extension
44
import wu.seal.jsontokotlin.model.classscodestruct.KotlinClass
5-
import wu.seal.jsontokotlin.model.classscodestruct.KotlinDataClass
5+
import wu.seal.jsontokotlin.model.classscodestruct.DataClass
66
import wu.seal.jsontokotlin.ui.NamingConventionDocument
77
import wu.seal.jsontokotlin.ui.checkBox
88
import wu.seal.jsontokotlin.ui.horizontalLinearLayout
@@ -38,7 +38,7 @@ object PropertySuffixSupport : Extension() {
3838

3939

4040
override fun intercept(kotlinClass: KotlinClass): KotlinClass {
41-
if (kotlinClass is KotlinDataClass) {
41+
if (kotlinClass is DataClass) {
4242

4343
return if (getConfig(suffixKeyEnable).toBoolean() && getConfig(suffixKey).isNotEmpty()) {
4444
val originProperties = kotlinClass.properties

0 commit comments

Comments
 (0)