public class AppConfig {
@NotNull
@Positive
private int maxConnections;
@NotEmpty
private String dbUrl;
// Getters and setters
}
public static void main(String[] args) {
Config config = Config.create(AppConfig.class);
AppConfig appConfig = config.loadConfig();
int maxConnections = appConfig.getMaxConnections();
String dbUrl = appConfig.getDbUrl();
}
public class PositiveValidator implements Validator<Integer> {
@Override
public void validate(Integer value) {
if (value <= 0) {
throw new ConfigException("Invalid value for maxConnections");
}
}
}
public class UrlConverter implements Converter<String> {
@Override
public String convert(String value) {
if (!value.startsWith("http://")) {
throw new ConfigException("Invalid URL format");
}
return value;
}
}
public static void main(String[] args) {
Config config = Config.create()
.withValidator(AppConfig.class, "maxConnections", new PositiveValidator())
.withConverter(AppConfig.class, "dbUrl", new UrlConverter())
.load(AppConfig.class);
// ...
}