Add collaboration feature
[sdc.git] / openecomp-be / lib / openecomp-healing-lib / openecomp-sdc-healing-core / src / main / java / org / openecomp / sdc / healing / dao / impl / HealingDaoImpl.java
1 package org.openecomp.sdc.healing.dao.impl;
2
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.sdc.healing.dao.HealingDao;
9
10 import java.util.Optional;
11
12 /**
13  * Created by ayalaben on 10/17/2017
14  */
15 public class HealingDaoImpl implements HealingDao {
16
17   private static final NoSqlDb noSqlDb = NoSqlDbFactory.getInstance().createInterface();
18   private static HealingAccessor accessor =
19       noSqlDb.getMappingManager().createAccessor(HealingAccessor.class);
20
21   @Override
22   public Optional<Boolean> getItemHealingFlag(String space, String itemId, String versionId) {
23     ResultSet result = accessor.getItemHealingFlag(space, itemId, versionId);
24     return result.getAvailableWithoutFetching() < 1
25         ? Optional.empty()
26         : Optional.of(result.one().getBool("healing_needed"));
27   }
28
29   @Override
30   public void setItemHealingFlag(boolean healingNeededFlag, String space, String itemId,
31                                  String versionId) {
32     accessor.setItemHealingFlag(healingNeededFlag, space, itemId, versionId);
33   }
34
35
36   @Accessor
37   interface HealingAccessor {
38
39     @Query("SELECT healing_needed FROM healing WHERE space=? AND item_id=? AND version_id=?")
40     ResultSet getItemHealingFlag(String space, String itemId, String versionId);
41
42     @Query("UPDATE healing SET healing_needed=? WHERE space=? AND item_id=? AND version_id=?")
43     void setItemHealingFlag(boolean flag, String space, String itemId, String versionId);
44
45   }
46 }