push addional code
[sdc.git] / openecomp-be / lib / openecomp-sdc-vendor-software-product-lib / openecomp-sdc-vendor-software-product-core / src / main / java / org / openecomp / sdc / vendorsoftwareproduct / dao / impl / ProcessArtifactDaoCassandraImpl.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
4  * ================================================================================
5  * Copyright (C) 2017 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.vendorsoftwareproduct.dao.impl;
22
23 import com.datastax.driver.core.ResultSet;
24 import com.datastax.driver.core.UDTValue;
25 import com.datastax.driver.mapping.UDTMapper;
26 import com.datastax.driver.mapping.annotations.Accessor;
27 import com.datastax.driver.mapping.annotations.Query;
28 import org.openecomp.core.nosqldb.api.NoSqlDb;
29 import org.openecomp.core.nosqldb.factory.NoSqlDbFactory;
30 import org.openecomp.sdc.vendorsoftwareproduct.dao.ProcessArtifactDao;
31 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ProcessArtifactEntity;
32 import org.openecomp.sdc.versioning.dao.types.Version;
33
34 import java.nio.ByteBuffer;
35
36 public class ProcessArtifactDaoCassandraImpl implements ProcessArtifactDao {
37
38   private static final NoSqlDb noSqlDb = NoSqlDbFactory.getInstance().createInterface();
39   private static final ProcessArtifactAccessor accessor =
40       noSqlDb.getMappingManager().createAccessor(ProcessArtifactAccessor.class);
41   private static final UDTMapper<Version> versionMapper =
42       noSqlDb.getMappingManager().udtMapper(Version.class);
43
44   @Override
45   public void update(ProcessArtifactEntity entity) {
46     accessor.update(entity.getVspId(), versionMapper.toUDT(entity.getVersion()),
47         entity.getComponentId(), entity.getId(), entity.getArtifactName(), entity.getArtifact());
48   }
49
50   @Override
51   public ProcessArtifactEntity get(ProcessArtifactEntity entity) {
52     return accessor
53         .get(entity.getVspId(), versionMapper.toUDT(entity.getVersion()), entity.getComponentId(),
54             entity.getId());
55   }
56
57   @Override
58   public void delete(ProcessArtifactEntity entity) {
59     accessor.delete(entity.getVspId(), versionMapper.toUDT(entity.getVersion()),
60         entity.getComponentId(), entity.getId());
61   }
62
63   @Accessor
64   interface ProcessArtifactAccessor {
65
66     @Query(
67         "insert into vsp_process (vsp_id, version, component_id, process_id, artifact_name,"
68             + " artifact) values (?,?,?,?,?,?)")
69     ResultSet update(String vspId, UDTValue version, String componentId, String id,
70                      String artifactName, ByteBuffer artifact);
71
72     @Query(
73         "select vsp_id, version, component_id, process_id, artifact_name, artifact "
74             + "from vsp_process where vsp_id=? and version=? and component_id=? and process_id=?")
75     ProcessArtifactEntity get(String vspId, UDTValue version, String componentId, String id);
76
77     @Query(
78         "delete artifact_name, artifact from vsp_process where vsp_id=? and version=? and"
79             + " component_id=? and process_id=?")
80     ResultSet delete(String vspId, UDTValue version, String componentId, String id);
81   }
82 }