diff --git a/scm-core/src/main/java/sonia/scm/store/ConfigurationEntryStoreFactory.java b/scm-core/src/main/java/sonia/scm/store/ConfigurationEntryStoreFactory.java index 9b5486bc22..b77eb2c0f1 100644 --- a/scm-core/src/main/java/sonia/scm/store/ConfigurationEntryStoreFactory.java +++ b/scm-core/src/main/java/sonia/scm/store/ConfigurationEntryStoreFactory.java @@ -55,41 +55,23 @@ public interface ConfigurationEntryStoreFactory { } } -final class TypedFloatingConfigurationEntryStoreParameters implements TypedStoreParameters { - - private Class type; - private String name; - private Repository repository; +final class TypedFloatingConfigurationEntryStoreParameters { + private final TypedStoreParametersImpl parameters = new TypedStoreParametersImpl<>(); private final ConfigurationEntryStoreFactory factory; TypedFloatingConfigurationEntryStoreParameters(ConfigurationEntryStoreFactory factory) { this.factory = factory; } - @Override - public Class getType() { - return type; - } - - @Override - public String getName() { - return name; - } - - @Override - public Repository getRepository() { - return repository; - } - public class Builder { Builder(Class type) { - TypedFloatingConfigurationEntryStoreParameters.this.type = type; + parameters.setType(type); } public OptionalRepositoryBuilder withName(String name) { - TypedFloatingConfigurationEntryStoreParameters.this.name = name; + parameters.setName(name); return new OptionalRepositoryBuilder(); } } @@ -97,12 +79,12 @@ final class TypedFloatingConfigurationEntryStoreParameters implements TypedSt public class OptionalRepositoryBuilder { public OptionalRepositoryBuilder forRepository(Repository repository) { - TypedFloatingConfigurationEntryStoreParameters.this.repository = repository; + parameters.setRepository(repository); return this; } public ConfigurationEntryStore build(){ - return factory.getStore(TypedFloatingConfigurationEntryStoreParameters.this); + return factory.getStore(parameters); } } } diff --git a/scm-core/src/main/java/sonia/scm/store/ConfigurationStoreFactory.java b/scm-core/src/main/java/sonia/scm/store/ConfigurationStoreFactory.java index 7b96ea2b17..55a6baf83d 100644 --- a/scm-core/src/main/java/sonia/scm/store/ConfigurationStoreFactory.java +++ b/scm-core/src/main/java/sonia/scm/store/ConfigurationStoreFactory.java @@ -55,41 +55,23 @@ public interface ConfigurationStoreFactory { } } -final class TypedFloatingConfigurationStoreParameters implements TypedStoreParameters { - - private Class type; - private String name; - private Repository repository; +final class TypedFloatingConfigurationStoreParameters { + private final TypedStoreParametersImpl parameters = new TypedStoreParametersImpl<>(); private final ConfigurationStoreFactory factory; TypedFloatingConfigurationStoreParameters(ConfigurationStoreFactory factory) { this.factory = factory; } - @Override - public Class getType() { - return type; - } - - @Override - public String getName() { - return name; - } - - @Override - public Repository getRepository() { - return repository; - } - public class Builder { Builder(Class type) { - TypedFloatingConfigurationStoreParameters.this.type = type; + parameters.setType(type); } public OptionalRepositoryBuilder withName(String name) { - TypedFloatingConfigurationStoreParameters.this.name = name; + parameters.setName(name); return new OptionalRepositoryBuilder(); } } @@ -97,12 +79,12 @@ final class TypedFloatingConfigurationStoreParameters implements TypedStorePa public class OptionalRepositoryBuilder { public OptionalRepositoryBuilder forRepository(Repository repository) { - TypedFloatingConfigurationStoreParameters.this.repository = repository; + parameters.setRepository(repository); return this; } public ConfigurationStore build(){ - return factory.getStore(TypedFloatingConfigurationStoreParameters.this); + return factory.getStore(parameters); } } } diff --git a/scm-core/src/main/java/sonia/scm/store/DataStoreFactory.java b/scm-core/src/main/java/sonia/scm/store/DataStoreFactory.java index ba1c9cc6c2..bb2f0a37ad 100644 --- a/scm-core/src/main/java/sonia/scm/store/DataStoreFactory.java +++ b/scm-core/src/main/java/sonia/scm/store/DataStoreFactory.java @@ -52,41 +52,23 @@ public interface DataStoreFactory { } } -final class TypedFloatingDataStoreParameters implements TypedStoreParameters { - - private Class type; - private String name; - private Repository repository; +final class TypedFloatingDataStoreParameters { + private final TypedStoreParametersImpl parameters = new TypedStoreParametersImpl<>(); private final DataStoreFactory factory; TypedFloatingDataStoreParameters(DataStoreFactory factory) { this.factory = factory; } - @Override - public Class getType() { - return type; - } - - @Override - public String getName() { - return name; - } - - @Override - public Repository getRepository() { - return repository; - } - public class Builder { Builder(Class type) { - TypedFloatingDataStoreParameters.this.type = type; + parameters.setType(type); } public OptionalRepositoryBuilder withName(String name) { - TypedFloatingDataStoreParameters.this.name = name; + parameters.setName(name); return new OptionalRepositoryBuilder(); } } @@ -94,12 +76,12 @@ final class TypedFloatingDataStoreParameters implements TypedStoreParameters< public class OptionalRepositoryBuilder { public OptionalRepositoryBuilder forRepository(Repository repository) { - TypedFloatingDataStoreParameters.this.repository = repository; + parameters.setRepository(repository); return this; } public DataStore build(){ - return factory.getStore(TypedFloatingDataStoreParameters.this); + return factory.getStore(parameters); } } } diff --git a/scm-core/src/main/java/sonia/scm/store/TypedStoreParametersImpl.java b/scm-core/src/main/java/sonia/scm/store/TypedStoreParametersImpl.java new file mode 100644 index 0000000000..50ce6a496b --- /dev/null +++ b/scm-core/src/main/java/sonia/scm/store/TypedStoreParametersImpl.java @@ -0,0 +1,36 @@ +package sonia.scm.store; + +import sonia.scm.repository.Repository; + +class TypedStoreParametersImpl implements TypedStoreParameters { + private Class type; + private String name; + private Repository repository; + + @Override + public Class getType() { + return type; + } + + void setType(Class type) { + this.type = type; + } + + @Override + public String getName() { + return name; + } + + void setName(String name) { + this.name = name; + } + + @Override + public Repository getRepository() { + return repository; + } + + void setRepository(Repository repository) { + this.repository = repository; + } +}