From 121184d98b8dbfe1f5cbd5e9e3fa9bb035201213 Mon Sep 17 00:00:00 2001 From: Adam Bailey Date: Thu, 14 Aug 2014 18:49:13 +0000 Subject: [PATCH] 0001914: Ability to restore a parameter's value back to the default value --- .../symmetric/service/IParameterService.java | 2 ++ .../service/impl/ParameterService.java | 22 +++++++++++++++++++ .../service/impl/MockParameterService.java | 5 +++++ 3 files changed, 29 insertions(+) diff --git a/symmetric-core/src/main/java/org/jumpmind/symmetric/service/IParameterService.java b/symmetric-core/src/main/java/org/jumpmind/symmetric/service/IParameterService.java index c850d5dc6b..eb7650f9a5 100644 --- a/symmetric-core/src/main/java/org/jumpmind/symmetric/service/IParameterService.java +++ b/symmetric-core/src/main/java/org/jumpmind/symmetric/service/IParameterService.java @@ -62,6 +62,8 @@ public interface IParameterService { public void saveParameters(String externalId, String nodeGroupId, Map parameters, String lastUpdateBy); public void deleteParameter(String externalId, String nodeGroupId, String key); + + public void deleteParameterWithUpdate(String externalId, String nodeGroupId, String key); public void rereadParameters(); diff --git a/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/ParameterService.java b/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/ParameterService.java index 616a9831dd..f852e1fabc 100644 --- a/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/ParameterService.java +++ b/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/ParameterService.java @@ -105,6 +105,28 @@ public void deleteParameter(String externalId, String nodeGroupId, String key) { sqlTemplate.update(sql.getSql("deleteParameterSql"), externalId, nodeGroupId, key); rereadParameters(); } + + public void deleteParameterWithUpdate(String externalId, String nodeGroupId, String key) { + String oldSql = sql.getSql("deleteParameterSql"); + String newSql = ""; + int j = 0; + for (int i = 0; i < oldSql.length(); i++) { + if (oldSql.charAt(i) == '?') { + if (j == 0) { + newSql += "'" + externalId + "'";; + } else if (j == 1) { + newSql += "'" + nodeGroupId + "'"; + } else { + newSql += "'" + key + "'"; + } + j++; + } else { + newSql += oldSql.charAt(i); + } + } + sqlTemplate.update(newSql); + } + public void saveParameters(String externalId, String nodeGroupId, Map parameters, String lastUpdateBy) { Set keys = parameters.keySet(); diff --git a/symmetric-core/src/test/java/org/jumpmind/symmetric/service/impl/MockParameterService.java b/symmetric-core/src/test/java/org/jumpmind/symmetric/service/impl/MockParameterService.java index 08adab20b6..60c3204d9e 100644 --- a/symmetric-core/src/test/java/org/jumpmind/symmetric/service/impl/MockParameterService.java +++ b/symmetric-core/src/test/java/org/jumpmind/symmetric/service/impl/MockParameterService.java @@ -100,4 +100,9 @@ public TypedProperties getDatabaseParametersByExternalId(String externalId) { return null; } + @Override + public void deleteParameterWithUpdate(String externalId, + String nodeGroupId, String key) { + } + }