Skip to content

Commit 2e99006

Browse files
committed
build(checkstyle): introduce team Checkstyle config and enforce build failure on violations
- Add src/test/resources/team/checkstyle-rules.xml: tab-based indentation (Indentation module, basicOffset=4), import ordering with JDK/third-party/ internal groups, relaxed ParameterNumber and VisibilityModifier disabled - Switch pom.xml configLocation from google_checks.xml to team config, set failOnViolation=true, add logViolationsToConsole and includeTestSourceDirectory, cover both src/main and src/test - Extend .editorconfig and ensure it cooperates with Checkstyle - Fix all resulting Checkstyle violations across the codebase: import ordering, NeedBraces, FinalClass/HideUtilityClassConstructor, EqualsAvoidNull, ModifierOrder, CatchParameterName, etc.
1 parent 1bd5202 commit 2e99006

66 files changed

Lines changed: 373 additions & 253 deletions

File tree

Some content is hidden

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

.editorconfig

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,21 @@
1-
# EditorConfig: http://EditorConfig.org
1+
# EditorConfig — https://editorconfig.org
22
root = true
33

4+
# ── Defaults for all files ────────────────────────────────────────────────────
45
[*]
5-
indent_style = tab
6-
indent_size = 4
7-
end_of_line = lf
8-
charset = utf-8
6+
indent_style = tab
7+
indent_size = 4
8+
end_of_line = lf
9+
charset = utf-8
910
trim_trailing_whitespace = true
10-
insert_final_newline = true
11+
insert_final_newline = true
1112

13+
# ── Markdown ──────────────────────────────────────────────────────────────────
14+
# Trailing spaces are significant in Markdown (line break); keep them.
1215
[*.md]
1316
trim_trailing_whitespace = false
17+
max_line_length = off
18+
19+
# ── Shell scripts ─────────────────────────────────────────────────────────────
20+
[*.sh]
21+
indent_size = 2

pom.xml

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -316,16 +316,15 @@
316316
<artifactId>maven-checkstyle-plugin</artifactId>
317317
<version>${dep.plugin.checkstyle.version}</version>
318318
<configuration>
319-
<configLocation>google_checks.xml</configLocation>
319+
<configLocation>${project.basedir}/src/test/resources/team/checkstyle-rules.xml</configLocation>
320320
<consoleOutput>true</consoleOutput>
321-
<failOnViolation>false</failOnViolation>
322-
<sourceDirectories>
323-
<sourceDirectory>${project.basedir}/src/main/java</sourceDirectory>
324-
</sourceDirectories>
321+
<failOnViolation>true</failOnViolation>
322+
<includeTestSourceDirectory>true</includeTestSourceDirectory>
323+
<logViolationsToConsole>true</logViolationsToConsole>
325324
</configuration>
326325
<executions>
327326
<execution>
328-
<id>checkstyle</id>
327+
<id>checkstyle-check</id>
329328
<phase>verify</phase>
330329
<goals>
331330
<goal>check</goal>

src/main/java/com/devskiller/jfairy/Bootstrap.java

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -43,22 +43,25 @@
4343
* @author Jakub Kubrynski
4444
* @author Olga Maciaszek-Sharma
4545
*/
46-
public class Bootstrap {
46+
public final class Bootstrap {
4747

4848
private static final Logger LOG = LoggerFactory.getLogger(Bootstrap.class);
4949

5050
private static final String DATA_FILE_PREFIX = "jfairy";
5151

52+
private Bootstrap() {
53+
}
54+
5255
public static Fairy createFairy(DataMaster dataMaster, Locale locale, RandomGenerator randomGenerator) {
5356
// Create base components
5457
BaseProducer baseProducer = new BaseProducer(randomGenerator);
5558
TimeProvider timeProvider = new TimeProvider();
5659
DateProducer dateProducer = new DateProducer(baseProducer, timeProvider);
57-
60+
5861
// Create locale-specific providers
5962
LocaleSpecificProviders localeProviders = LocaleSpecificProvidersFactory.createProvidersForLocale(
6063
locale, dataMaster, baseProducer, dateProducer);
61-
64+
6265
// Create company factory first (needed by PersonFactory)
6366
CompanyFactory companyFactory = new CompanyFactoryImpl(
6467
baseProducer, dataMaster, localeProviders.vatIdentificationNumberProvider()
@@ -74,31 +77,30 @@ public static Fairy createFairy(DataMaster dataMaster, Locale locale, RandomGene
7477
timeProvider,
7578
companyFactory
7679
);
77-
80+
7881
IBANFactory ibanFactory = new IBANFactoryImpl(baseProducer, dataMaster);
79-
82+
8083
// Create other producers
8184
CreditCardProvider creditCardProvider = new CreditCardProvider(dataMaster, baseProducer, dateProducer);
8285
TextProducerInternal textProducerInternal = new TextProducerInternal(dataMaster, baseProducer);
8386
IPNumberProducer ipNumberProducer = new IPNumberProducer(baseProducer);
84-
87+
8588
// Create fairy factory
8689
FairyFactory fairyFactory = new FairyFactoryImpl(
8790
textProducerInternal, baseProducer, personFactory,
8891
ipNumberProducer, dateProducer, creditCardProvider,
8992
companyFactory, ibanFactory
9093
);
91-
94+
9295
return fairyFactory.createFairy();
9396
}
9497

95-
9698
private static void fillDefaultDataMaster(MapBasedDataMaster dataMaster, Locale locale, String filePrefix) {
9799
try {
98100
dataMaster.readResources(filePrefix + ".yml");
99101
dataMaster.readResources(filePrefix + "_" + locale.getLanguage() + ".yml");
100-
} catch (IOException e) {
101-
throw new IllegalStateException(e);
102+
} catch (IOException ex) {
103+
throw new IllegalStateException(ex);
102104
}
103105
}
104106

@@ -111,7 +113,6 @@ public static Builder builder() {
111113
return new Builder();
112114
}
113115

114-
115116
/**
116117
* Use this factory method to create dataset containing default jfairy.yml and jfairy_{langCode}.yml files
117118
* merged with custom files with the same name
@@ -146,20 +147,17 @@ public static Fairy create(Locale locale, String dataFilePrefix) {
146147
.build();
147148
}
148149

149-
150150
public static Fairy create(Supplier<DataMaster> dataMaster, Locale locale) {
151151
return builder().withDataMasterProvider(dataMaster).withLocale(locale).build();
152152
}
153153

154-
155-
public static class Builder {
154+
public static final class Builder {
156155

157156
private Locale locale = Locale.ENGLISH;
158157
private String filePrefix = DATA_FILE_PREFIX;
159158
private RandomGenerator randomGenerator = new RandomGenerator();
160159
private DataMaster dataMaster;
161160

162-
163161
private MapBasedDataMaster getDefaultDataMaster(BaseProducer baseProducer) {
164162
return new MapBasedDataMaster(baseProducer);
165163
}
@@ -213,7 +211,6 @@ public Builder withDataMasterProvider(Supplier<DataMaster> dataMasterProvider) {
213211
return this;
214212
}
215213

216-
217214
/**
218215
* Returns the completed Fairy.
219216
*
@@ -229,5 +226,4 @@ public Fairy build() {
229226
}
230227
}
231228

232-
233229
}

src/main/java/com/devskiller/jfairy/Fairy.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,6 @@ public static Fairy create(Supplier<DataMaster> dataMasterProvider, Locale local
5959
return Bootstrap.create(dataMasterProvider, locale);
6060
}
6161

62-
6362
public static Bootstrap.Builder builder() {
6463
return Bootstrap.builder();
6564
}

src/main/java/com/devskiller/jfairy/FairyFactoryImpl.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,8 @@ class FairyFactoryImpl implements FairyFactory {
4444
public Fairy createFairy() {
4545
TextProducer textProducer = new TextProducer(textProducerInternal, baseProducer);
4646
NetworkProducer networkProducer = new NetworkProducer(ipNumberProducer);
47-
48-
return new Fairy(textProducer, personFactory, networkProducer, baseProducer,
47+
48+
return new Fairy(textProducer, personFactory, networkProducer, baseProducer,
4949
dateProducer, creditCardProvider, companyFactory, ibanFactory);
5050
}
5151
}

src/main/java/com/devskiller/jfairy/LocaleSpecificProvidersFactory.java

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -8,54 +8,54 @@
88
import com.devskiller.jfairy.data.DataMaster;
99
import com.devskiller.jfairy.producer.BaseProducer;
1010
import com.devskiller.jfairy.producer.DateProducer;
11+
import com.devskiller.jfairy.producer.company.locale.br.BrVATIdentificationNumberProvider;
12+
import com.devskiller.jfairy.producer.company.locale.de.DeVATIdentificationNumberProvider;
13+
import com.devskiller.jfairy.producer.company.locale.en.EnVATIdentificationNumberProvider;
14+
import com.devskiller.jfairy.producer.company.locale.es.EsVATIdentificationNumberProvider;
15+
import com.devskiller.jfairy.producer.company.locale.ka.KaVATIdentificationNumberProvider;
16+
import com.devskiller.jfairy.producer.company.locale.pl.PlVATIdentificationNumberProvider;
17+
import com.devskiller.jfairy.producer.company.locale.sk.SkVATIdentificationNumberProvider;
18+
import com.devskiller.jfairy.producer.company.locale.sv.SvVATIdentificationNumberProvider;
19+
import com.devskiller.jfairy.producer.company.locale.zh.ZhVATIdentificationNumberProvider;
1120
import com.devskiller.jfairy.producer.person.NationalIdentificationNumberFactory;
1221
import com.devskiller.jfairy.producer.person.locale.NoNationalIdentificationNumberFactory;
22+
import com.devskiller.jfairy.producer.person.locale.br.BrAddressProvider;
23+
import com.devskiller.jfairy.producer.person.locale.br.BrNationalIdentityCardNumberProvider;
24+
import com.devskiller.jfairy.producer.person.locale.br.BrPassportNumberProvider;
1325
import com.devskiller.jfairy.producer.person.locale.de.DeAddressProvider;
1426
import com.devskiller.jfairy.producer.person.locale.de.DeNationalIdentityCardNumberProvider;
1527
import com.devskiller.jfairy.producer.person.locale.de.DePassportNumberProvider;
16-
import com.devskiller.jfairy.producer.company.locale.de.DeVATIdentificationNumberProvider;
1728
import com.devskiller.jfairy.producer.person.locale.en.EnAddressProvider;
1829
import com.devskiller.jfairy.producer.person.locale.en.EnNationalIdentityCardNumberProvider;
1930
import com.devskiller.jfairy.producer.person.locale.en.EnPassportNumberProvider;
20-
import com.devskiller.jfairy.producer.company.locale.en.EnVATIdentificationNumberProvider;
21-
import com.devskiller.jfairy.producer.company.locale.br.BrVATIdentificationNumberProvider;
22-
import com.devskiller.jfairy.producer.person.locale.br.BrAddressProvider;
23-
import com.devskiller.jfairy.producer.person.locale.br.BrNationalIdentityCardNumberProvider;
24-
import com.devskiller.jfairy.producer.person.locale.br.BrPassportNumberProvider;
25-
import com.devskiller.jfairy.producer.person.locale.fr.FrAddressProvider;
2631
import com.devskiller.jfairy.producer.person.locale.es.EsAddressProvider;
2732
import com.devskiller.jfairy.producer.person.locale.es.EsNationalIdentityCardNumberProvider;
2833
import com.devskiller.jfairy.producer.person.locale.es.EsPassportNumberProvider;
29-
import com.devskiller.jfairy.producer.company.locale.es.EsVATIdentificationNumberProvider;
34+
import com.devskiller.jfairy.producer.person.locale.fr.FrAddressProvider;
3035
import com.devskiller.jfairy.producer.person.locale.ka.KaAddressProvider;
3136
import com.devskiller.jfairy.producer.person.locale.ka.KaNationalIdentityCardNumberProvider;
3237
import com.devskiller.jfairy.producer.person.locale.ka.KaPassportNumberProvider;
33-
import com.devskiller.jfairy.producer.company.locale.ka.KaVATIdentificationNumberProvider;
3438
import com.devskiller.jfairy.producer.person.locale.pl.PlAddressProvider;
3539
import com.devskiller.jfairy.producer.person.locale.pl.PlNationalIdentificationNumberFactory;
3640
import com.devskiller.jfairy.producer.person.locale.pl.PlNationalIdentityCardNumberProvider;
3741
import com.devskiller.jfairy.producer.person.locale.pl.PlPassportNumberProvider;
38-
import com.devskiller.jfairy.producer.company.locale.pl.PlVATIdentificationNumberProvider;
3942
import com.devskiller.jfairy.producer.person.locale.sk.SkAddressProvider;
4043
import com.devskiller.jfairy.producer.person.locale.sk.SkNationalIdentificationNumberFactory;
4144
import com.devskiller.jfairy.producer.person.locale.sk.SkNationalIdentityCardNumberProvider;
4245
import com.devskiller.jfairy.producer.person.locale.sk.SkPassportNumberProvider;
43-
import com.devskiller.jfairy.producer.company.locale.sk.SkVATIdentificationNumberProvider;
4446
import com.devskiller.jfairy.producer.person.locale.sv.SvAddressProvider;
4547
import com.devskiller.jfairy.producer.person.locale.sv.SvNationalIdentificationNumberFactory;
4648
import com.devskiller.jfairy.producer.person.locale.sv.SvNationalIdentityCardNumberProvider;
4749
import com.devskiller.jfairy.producer.person.locale.sv.SvPassportNumberProvider;
48-
import com.devskiller.jfairy.producer.company.locale.sv.SvVATIdentificationNumberProvider;
4950
import com.devskiller.jfairy.producer.person.locale.zh.ZhAddressProvider;
5051
import com.devskiller.jfairy.producer.person.locale.zh.ZhNationalIdentityCardNumberProvider;
5152
import com.devskiller.jfairy.producer.person.locale.zh.ZhPassportNumberProvider;
52-
import com.devskiller.jfairy.producer.company.locale.zh.ZhVATIdentificationNumberProvider;
5353
import com.devskiller.jfairy.producer.util.LanguageCode;
5454

5555
/**
5656
* Factory for creating locale-specific provider implementations
5757
*/
58-
class LocaleSpecificProvidersFactory {
58+
final class LocaleSpecificProvidersFactory {
5959

6060
private static final Logger LOG = LoggerFactory.getLogger(LocaleSpecificProvidersFactory.class);
6161

@@ -69,7 +69,7 @@ static LocaleSpecificProviders createProvidersForLocale(Locale locale,
6969
LanguageCode code;
7070
try {
7171
code = LanguageCode.valueOf(locale.getLanguage().toUpperCase());
72-
} catch (IllegalArgumentException e) {
72+
} catch (IllegalArgumentException ex) {
7373
LOG.warn("Unknown locale {}", locale);
7474
code = LanguageCode.EN;
7575
}

src/main/java/com/devskiller/jfairy/data/DataMaster.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,10 @@ public interface DataMaster {
1414

1515
List<String> getStringList(String key);
1616

17-
<T> T getValuesOfType(String dataKey, final String type, final Class<T> resultClass);
17+
<T> T getValuesOfType(String dataKey, String type, Class<T> resultClass);
1818

1919
String getRandomValue(String key);
2020

2121
LanguageCode getLanguage();
2222

23-
2423
}

src/main/java/com/devskiller/jfairy/data/MapBasedDataMaster.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,12 @@
1919
import com.devskiller.jfairy.producer.util.LanguageCode;
2020
import com.devskiller.jfairy.producer.util.ValidateUtils;
2121

22-
2322
public class MapBasedDataMaster implements DataMaster {
2423

2524
public static final String LANGUAGE_TAG = "language";
2625
private final BaseProducer baseProducer;
2726
private Map<String, Object> dataSource = new CaseInsensitiveMap();
2827

29-
3028
public MapBasedDataMaster(BaseProducer baseProducer) {
3129
this.baseProducer = baseProducer;
3230
}
@@ -119,7 +117,7 @@ private void appendData(Map<String, Object> data) {
119117
dataSource.putAll(data);
120118
}
121119

122-
private static class CaseInsensitiveMap extends HashMap<String, Object> {
120+
private static final class CaseInsensitiveMap extends HashMap<String, Object> {
123121

124122
@Override
125123
@SuppressWarnings("unchecked")

src/main/java/com/devskiller/jfairy/package-info.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
/**
2+
* Core package of the jFairy library.
3+
* <p>
4+
* This package contains the main entry points for the library, such as the {@link com.devskiller.jfairy.Fairy}
5+
* facade and the {@link com.devskiller.jfairy.Bootstrap} class for initialization.
6+
* <p>
7+
* The {@link com.devskiller.jfairy.FairyFactory} provides mechanisms to create localized instances
8+
* of the data generators.
9+
*/
110
@NullMarked
211
package com.devskiller.jfairy;
312

src/main/java/com/devskiller/jfairy/producer/BaseProducer.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ public class BaseProducer {
88

99
private final RandomGenerator random;
1010

11-
1211
public BaseProducer(RandomGenerator random) {
1312
this.random = random;
1413
}
@@ -80,8 +79,6 @@ private <T> List<T> extractRandomList(List<T> elements, int count) {
8079
return elements.subList(0, count);
8180
}
8281

83-
84-
8582
/**
8683
* Returns random int value
8784
*

0 commit comments

Comments
 (0)