diff options
Diffstat (limited to 'openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/ComponentDataHealer.java')
-rw-r--r-- | openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/ComponentDataHealer.java | 53 |
1 files changed, 23 insertions, 30 deletions
diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/ComponentDataHealer.java b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/ComponentDataHealer.java index 1e6299ce17..7dd86ddb5b 100644 --- a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/ComponentDataHealer.java +++ b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/ComponentDataHealer.java @@ -13,12 +13,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.openecomp.sdc.healing.healers; import com.google.common.annotations.VisibleForTesting; import com.google.gson.JsonObject; import com.google.gson.JsonParser; +import java.util.Collection; +import java.util.Objects; import org.apache.commons.lang.StringUtils; import org.openecomp.sdc.healing.interfaces.Healer; import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDao; @@ -26,14 +27,11 @@ import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDaoFactory; import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity; import org.openecomp.sdc.versioning.dao.types.Version; -import java.util.Collection; -import java.util.Objects; - public class ComponentDataHealer implements Healer { private static final String VFC_CODE = "vfcCode"; //earlier present in composition data private static final String NFC_FUNCTION = "nfcFunction"; - private static final String NFC_NAMING_CODE = "nfcNamingCode"; + private static final String NFC_NAMING_CODE = "nfcNamingCode"; private static final String GENERAL = "general"; private final ComponentDao componentDao; @@ -46,12 +44,22 @@ public class ComponentDataHealer implements Healer { this.componentDao = componentDao; } + private static void moveAttribute(JsonObject compositionJsonObj, JsonObject questJsonObject, JsonObject general, String compositionAttrName, + String questAttrName) { + if (Objects.nonNull(compositionJsonObj.get(compositionAttrName))) { + if (general == null) { + general = new JsonObject(); + } + general.addProperty(questAttrName, compositionJsonObj.get(compositionAttrName).getAsString()); + questJsonObject.add(GENERAL, general); + compositionJsonObj.remove(compositionAttrName); + } + } + @Override public boolean isHealingNeeded(String itemId, Version version) { - final Collection<ComponentEntity> componentEntities = - componentDao.listCompositionAndQuestionnaire(itemId, version); - return Objects.nonNull(componentEntities) && !componentEntities.isEmpty() && - componentEntities.stream().anyMatch(this::checkNfcParams); + final Collection<ComponentEntity> componentEntities = componentDao.listCompositionAndQuestionnaire(itemId, version); + return Objects.nonNull(componentEntities) && !componentEntities.isEmpty() && componentEntities.stream().anyMatch(this::checkNfcParams); } private boolean checkNfcParams(ComponentEntity componentEntity) { @@ -66,8 +74,7 @@ public class ComponentDataHealer implements Healer { @Override public void heal(String itemId, Version version) throws Exception { - final Collection<ComponentEntity> componentEntities = - componentDao.listCompositionAndQuestionnaire(itemId, version); + final Collection<ComponentEntity> componentEntities = componentDao.listCompositionAndQuestionnaire(itemId, version); if (Objects.nonNull(componentEntities) && !componentEntities.isEmpty()) { componentEntities.forEach(componentEntity -> { final String compositionData = componentEntity.getCompositionData(); @@ -76,32 +83,18 @@ public class ComponentDataHealer implements Healer { } } - private void updateComponentData(String itemId, Version version, ComponentEntity componentEntity, - String questionnaireData, String compositionData) { + private void updateComponentData(String itemId, Version version, ComponentEntity componentEntity, String questionnaireData, + String compositionData) { if (!StringUtils.isEmpty(compositionData)) { JsonParser jsonParser = new JsonParser(); JsonObject json = (JsonObject) jsonParser.parse(compositionData); JsonObject questionnaireJson = (JsonObject) jsonParser.parse(questionnaireData); - moveAttribute(json, questionnaireJson, questionnaireJson.getAsJsonObject(GENERAL), VFC_CODE, - NFC_NAMING_CODE); - moveAttribute(json, questionnaireJson, questionnaireJson.getAsJsonObject(GENERAL), NFC_FUNCTION, - NFC_FUNCTION); + moveAttribute(json, questionnaireJson, questionnaireJson.getAsJsonObject(GENERAL), VFC_CODE, NFC_NAMING_CODE); + moveAttribute(json, questionnaireJson, questionnaireJson.getAsJsonObject(GENERAL), NFC_FUNCTION, NFC_FUNCTION); componentEntity.setCompositionData(json.toString()); componentDao.update(componentEntity); componentEntity.setQuestionnaireData(questionnaireJson.toString()); - componentDao.updateQuestionnaireData(itemId,version,componentEntity.getId(), questionnaireJson.toString()); - } - } - - private static void moveAttribute(JsonObject compositionJsonObj, JsonObject questJsonObject, - JsonObject general, String compositionAttrName, String questAttrName ) { - if (Objects.nonNull(compositionJsonObj.get(compositionAttrName))) { - if (general == null) { - general = new JsonObject(); - } - general.addProperty(questAttrName, compositionJsonObj.get(compositionAttrName).getAsString()); - questJsonObject.add(GENERAL, general); - compositionJsonObj.remove(compositionAttrName); + componentDao.updateQuestionnaireData(itemId, version, componentEntity.getId(), questionnaireJson.toString()); } } } |