Added oparent to sdc main
[sdc.git] / openecomp-be / lib / openecomp-healing-lib / openecomp-sdc-healing-core / src / main / java / org / openecomp / sdc / healing / dao / impl / HealingDaoImpl.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
4  * ================================================================================
5  * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.openecomp.sdc.healing.dao.impl;
22
23 import com.datastax.driver.core.ResultSet;
24 import com.datastax.driver.mapping.annotations.Accessor;
25 import com.datastax.driver.mapping.annotations.Query;
26 import org.openecomp.core.nosqldb.api.NoSqlDb;
27 import org.openecomp.core.nosqldb.factory.NoSqlDbFactory;
28 import org.openecomp.sdc.healing.dao.HealingDao;
29
30 import java.util.Optional;
31
32 /**
33  * Created by ayalaben on 10/17/2017
34  */
35 public class HealingDaoImpl implements HealingDao {
36
37   private static final NoSqlDb noSqlDb = NoSqlDbFactory.getInstance().createInterface();
38   private static HealingAccessor accessor =
39       noSqlDb.getMappingManager().createAccessor(HealingAccessor.class);
40
41   @Override
42   public Optional<Boolean> getItemHealingFlag(String space, String itemId, String versionId) {
43     ResultSet result = accessor.getItemHealingFlag(space, itemId, versionId);
44     return result.getAvailableWithoutFetching() < 1
45         ? Optional.empty()
46         : Optional.of(result.one().getBool("healing_needed"));
47   }
48
49   @Override
50   public void setItemHealingFlag(boolean healingNeededFlag, String space, String itemId,
51                                  String versionId) {
52     accessor.setItemHealingFlag(healingNeededFlag, space, itemId, versionId);
53   }
54
55
56   @Accessor
57   interface HealingAccessor {
58
59     @Query("SELECT healing_needed FROM healing WHERE space=? AND item_id=? AND version_id=?")
60     ResultSet getItemHealingFlag(String space, String itemId, String versionId);
61
62     @Query("UPDATE healing SET healing_needed=? WHERE space=? AND item_id=? AND version_id=?")
63     void setItemHealingFlag(boolean flag, String space, String itemId, String versionId);
64
65   }
66 }