Skip to content

Commit 2957007

Browse files
authored
Fix fluent Gradle DSL for Jackson YAML (#1731)
2 parents 748dab2 + 3ae8940 commit 2957007

File tree

4 files changed

+32
-10
lines changed

4 files changed

+32
-10
lines changed

plugin-gradle/CHANGES.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,16 @@ We adhere to the [keepachangelog](https://keepachangelog.com/en/1.0.0/) format (
44

55
## [Unreleased]
66

7+
### Fixed
8+
* Correctly support the syntax
9+
```
10+
spotless {
11+
yaml {
12+
jackson().yamlFeature("MINIMIZE_QUOTES", true)
13+
}
14+
}
15+
```
16+
717
## [6.19.0] - 2023-05-24
818
### Added
919
* Support Rome as a formatter for JavaScript and TypeScript code. Adds a new `rome` step to `javascript` and `typescript` formatter configurations. ([#1663](https://github.com/diffplug/spotless/pull/1663))

plugin-gradle/src/main/java/com/diffplug/gradle/spotless/AJacksonGradleConfig.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
import com.diffplug.spotless.json.JacksonConfig;
2222
import com.diffplug.spotless.json.JacksonJsonStep;
2323

24-
public abstract class AJacksonGradleConfig {
24+
public abstract class AJacksonGradleConfig<T extends AJacksonGradleConfig> {
2525
protected final FormatExtension formatExtension;
2626

2727
protected JacksonConfig jacksonConfig;
@@ -35,17 +35,19 @@ public AJacksonGradleConfig(JacksonConfig jacksonConfig, FormatExtension formatE
3535
this.jacksonConfig = jacksonConfig;
3636
}
3737

38-
public AJacksonGradleConfig feature(String feature, boolean toggle) {
38+
public T feature(String feature, boolean toggle) {
3939
this.jacksonConfig.appendFeatureToToggle(Collections.singletonMap(feature, toggle));
4040
formatExtension.replaceStep(createStep());
41-
return this;
41+
return self();
4242
}
4343

44-
public AJacksonGradleConfig version(String version) {
44+
public T version(String version) {
4545
this.version = version;
4646
formatExtension.replaceStep(createStep());
47-
return this;
47+
return self();
4848
}
4949

50+
public abstract T self();
51+
5052
protected abstract FormatterStep createStep();
5153
}

plugin-gradle/src/main/java/com/diffplug/gradle/spotless/JsonExtension.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ private FormatterStep createStep() {
132132
}
133133
}
134134

135-
public static class JacksonJsonGradleConfig extends AJacksonGradleConfig {
135+
public static class JacksonJsonGradleConfig extends AJacksonGradleConfig<JacksonJsonGradleConfig> {
136136
protected JacksonJsonConfig jacksonConfig;
137137

138138
public JacksonJsonGradleConfig(JacksonJsonConfig jacksonConfig, FormatExtension formatExtension) {
@@ -149,12 +149,17 @@ public JacksonJsonGradleConfig(FormatExtension formatExtension) {
149149
/**
150150
* Refers to com.fasterxml.jackson.core.JsonGenerator.Feature
151151
*/
152-
public AJacksonGradleConfig jsonFeature(String feature, boolean toggle) {
152+
public JacksonJsonGradleConfig jsonFeature(String feature, boolean toggle) {
153153
this.jacksonConfig.appendJsonFeatureToToggle(Collections.singletonMap(feature, toggle));
154154
formatExtension.replaceStep(createStep());
155155
return this;
156156
}
157157

158+
@Override
159+
public JacksonJsonGradleConfig self() {
160+
return this;
161+
}
162+
158163
// 'final' as it is called in the constructor
159164
@Override
160165
protected final FormatterStep createStep() {

plugin-gradle/src/main/java/com/diffplug/gradle/spotless/YamlExtension.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,11 @@ protected void setupTask(SpotlessTask task) {
3939
super.setupTask(task);
4040
}
4141

42-
public AJacksonGradleConfig jackson() {
42+
public JacksonYamlGradleConfig jackson() {
4343
return new JacksonYamlGradleConfig(this);
4444
}
4545

46-
public class JacksonYamlGradleConfig extends AJacksonGradleConfig {
46+
public class JacksonYamlGradleConfig extends AJacksonGradleConfig<JacksonYamlGradleConfig> {
4747
protected JacksonYamlConfig jacksonConfig;
4848

4949
public JacksonYamlGradleConfig(JacksonYamlConfig jacksonConfig, FormatExtension formatExtension) {
@@ -61,12 +61,17 @@ public JacksonYamlGradleConfig(FormatExtension formatExtension) {
6161
/**
6262
* Refers to com.fasterxml.jackson.dataformat.yaml.YAMLGenerator.Feature
6363
*/
64-
public AJacksonGradleConfig yamlFeature(String feature, boolean toggle) {
64+
public JacksonYamlGradleConfig yamlFeature(String feature, boolean toggle) {
6565
this.jacksonConfig.appendYamlFeatureToToggle(Collections.singletonMap(feature, toggle));
6666
formatExtension.replaceStep(createStep());
6767
return this;
6868
}
6969

70+
@Override
71+
public JacksonYamlGradleConfig self() {
72+
return this;
73+
}
74+
7075
// 'final' as it is called in the constructor
7176
@Override
7277
protected final FormatterStep createStep() {

0 commit comments

Comments
 (0)