1 package org.openecomp.core.tools.store;
3 import com.datastax.driver.core.ResultSet;
4 import com.datastax.driver.mapping.annotations.Accessor;
5 import com.datastax.driver.mapping.annotations.Query;
6 import org.openecomp.core.nosqldb.api.NoSqlDb;
7 import org.openecomp.core.nosqldb.factory.NoSqlDbFactory;
8 import org.openecomp.core.tools.store.zusammen.datatypes.HealingEntity;
10 import java.util.ArrayList;
13 * Created by ayalaben on 10/15/2017
15 public class HealingHandler {
17 private static NoSqlDb nnoSqlDb = NoSqlDbFactory.getInstance().createInterface();
18 private static HealingAccessor accessor =
19 nnoSqlDb.getMappingManager().createAccessor(HealingAccessor.class);
22 public void populateHealingTable(ArrayList<HealingEntity> healingEntities) {
23 healingEntities.forEach(healingEntity -> {
24 if (isHealingRecordExist(healingEntity)) {
25 accessor.updateFlag(healingEntity.getHealingFlag(), healingEntity.getSpace(),
26 healingEntity.getItemId(), healingEntity.getVersionId());
28 accessor.create(healingEntity.getSpace(), healingEntity.getItemId(),
29 healingEntity.getVersionId(), healingEntity.getHealingFlag(),
30 healingEntity.getOldVersion());
35 private boolean isHealingRecordExist(HealingEntity healingEntity) {
36 return accessor.getFlag(healingEntity.getSpace(), healingEntity.getItemId(),
37 healingEntity.getVersionId()).getAvailableWithoutFetching() == 1;
41 interface HealingAccessor {
43 @Query("SELECT healing_needed FROM healing WHERE space=? AND item_id=? AND version_id=?")
44 ResultSet getFlag(String space, String itemId, String versionId);
46 @Query("Insert into healing (space, item_id, version_id, healing_needed, old_version) " +
48 void create(String space, String itemId, String versionId, boolean flag, String oldVersion);
50 @Query("UPDATE healing SET healing_needed=? WHERE space=? AND item_id=? AND version_id=?")
51 void updateFlag(boolean flag, String space, String itemId, String versionId);