4343public abstract class Config {
4444 protected final Logger logger = LoggerFactory .getLogger (this .getClass ());
4545 protected final List <AbstractConfigField <?>> configFields = new ArrayList <>();
46+ protected final String id ;
4647 protected final Path path ;
4748 protected final Json .Serializer serializer ;
4849 protected final Json .Deserializer deserializer ;
4950
50- public Config (final Path path , final ConfigSerializer <?> serializer , final ConfigDeserializer <?> deserializer ) {
51+ public Config (final String id , final Path path , final ConfigSerializer <?> serializer , final ConfigDeserializer <?> deserializer ) {
52+ this .id = id ;
5153 this .path = path ;
5254 if (!(serializer instanceof Json .Serializer && deserializer instanceof Json .Deserializer )) {
5355 throw new RuntimeException ("Only json serialization is currently supported! Please use Json.SERIALIZER/Json.DESERIALIZER!" );
@@ -57,8 +59,8 @@ public Config(final Path path, final ConfigSerializer<?> serializer, final Confi
5759 this .deserializer = (Json .Deserializer ) deserializer ;
5860 }
5961
60- public Config (final Path path ) {
61- this (path , new Json .Serializer (), new Json .Deserializer ());
62+ public Config (final String id , final Path path ) {
63+ this (id , path , new Json .Serializer (), new Json .Deserializer ());
6264 }
6365
6466 public BooleanConfigField booleanFieldOf (final String name , final boolean defaultValue ) {
@@ -158,6 +160,10 @@ public List<AbstractConfigField<?>> getConfigFields() {
158160 return configFields ;
159161 }
160162
163+ public String getId () {
164+ return id ;
165+ }
166+
161167 public Path getPath () {
162168 return path ;
163169 }
0 commit comments