package org.infernus.idea.checkstyle.service; import com.puppycrawl.tools.checkstyle.DefaultConfiguration; import com.puppycrawl.tools.checkstyle.api.Configuration; public class ConfigurationBuilder { private final DefaultConfiguration configuration; private ConfigurationBuilder(final DefaultConfiguration configuration) { this.configuration = configuration; } public static ConfigurationBuilder checker() { return new ConfigurationBuilder(new DefaultConfiguration("Checker")); } public static ConfigurationBuilder config(final String name) { return new ConfigurationBuilder(new DefaultConfiguration(name)); } public ConfigurationBuilder withChild(final ConfigurationBuilder child) { configuration.addChild(child.build()); return this; } public ConfigurationBuilder withAttribute(final String name, final String value) { configuration.addAttribute(name, value); return this; } public ConfigurationBuilder withMessage(final String key, final String value) { configuration.addMessage(key, value); return this; } public Configuration build() { return configuration; } }