+ @Override
+ public Map<P, D> getCreatedConfigurationData() {
+ return unmodifiable_configurationCreated;
+ }
+
+ @Override
+ public Map<P, D> getCreatedOperationalData() {
+ return unmodifiable_operationalCreated;
+ }
+
+ @Override
+ public Map<P, D> getOriginalConfigurationData() {
+ return unmodifiable_configurationOriginal;
+ }
+
+ @Override
+ public Map<P, D> getOriginalOperationalData() {
+ return unmodifiable_operationalOriginal;
+ }
+
+ @Override
+ public D readOperationalData(final P path) {
+ return reader.readOperationalData(path);
+ }
+
+ @Override
+ public D readConfigurationData(final P path) {
+ return reader.readConfigurationData(path);
+ }
+
+ private D getConfigurationOriginal(final P path) {
+ D data = configurationOriginal.get(path);
+ if (data != null) {
+ return data;
+ }
+ data = reader.readConfigurationData(path);
+ if (data != null) {
+ configurationOriginal.put(path, data);
+ return data;
+ }
+ return null;
+ }
+
+ private D getOperationalOriginal(final P path) {
+ D data = operationalOriginal.get(path);
+ if (data != null) {
+ return data;
+ }
+ data = reader.readOperationalData(path);
+ if (data != null) {
+ operationalOriginal.put(path, data);
+ return data;
+ }
+ return null;
+ }
+
+ protected D mergeOperationalData(final P path,final D stored, final D modified) {
+ return modified;
+ }
+
+ protected D mergeConfigurationData(final P path,final D stored, final D modified) {
+ return modified;
+ }