summaryrefslogtreecommitdiffstats
path: root/blueprints-processor/adaptors/data-adaptor-provider/src/main/java/org/onap/ccsdk/config/data/adaptor/service/ConfigResourceService.java
blob: b99b74f87193b3dfe2653789b467183de1e50166 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
/*
 * Copyright © 2017-2018 AT&T Intellectual Property.
 * Modifications Copyright © 2018 IBM.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.onap.ccsdk.config.data.adaptor.service;

import java.util.List;
import java.util.Map;
import org.onap.ccsdk.config.data.adaptor.domain.ConfigResource;
import org.onap.ccsdk.config.data.adaptor.domain.TransactionLog;
import org.onap.ccsdk.sli.core.sli.SvcLogicException;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;

public interface ConfigResourceService {

    /**
     * Return NamedParameterJdbcTemplate object.
     */
    public NamedParameterJdbcTemplate getNamedParameterJdbcTemplate() throws SvcLogicException;

    /**
     * Query given SQL to create a prepared statement from SQL and a list of arguments to bind to the
     * query, expecting a result list.
     * <p>
     * The results will be mapped to a List (one entry for each row) of Maps (one entry for each column,
     * using the column name as the key).
     *
     * @param sql SQL query to execute
     * @param param map of parameters to bind to the query (leaving it to the PreparedStatement to guess
     *        the corresponding SQL type)
     * @return a List that contains a Map per row
     * @throws org.onap.ccsdk.sli.core.sli.SvcLogicException if the query fails
     */
    public List<Map<String, Object>> query(String sql, Map<String, Object> param) throws SvcLogicException;

    /**
     * Issue an update via a prepared statement, binding the given arguments.
     *
     * @param sql SQL containing named parameters
     * @param param map of parameters to bind to the query (leaving it to the PreparedStatement to guess
     *        the corresponding SQL type)
     * @return the number of rows affected
     * @throws org.onap.ccsdk.sli.core.sli.SvcLogicException if there is any problem issuing the update
     */
    public int update(String sql, Map<String, Object> param) throws SvcLogicException;

    /**
     * Query given SQL to create a prepared statement from SQL and a list of arguments to bind to the
     * query, expecting a result list.
     * <p>
     * The results will be mapped to a List (one entry for each row) of Maps (one entry for each column,
     * using the column name as the key).
     *
     * @param sql SQL query to execute
     * @param data arguments to bind to the query (leaving it to the PreparedStatement to guess the
     *        corresponding SQL type)
     * @return a List that contains a Map per row
     * @throws org.onap.ccsdk.sli.core.sli.SvcLogicException if the query fails
     */
    public List<Map<String, Object>> query(String sql, Object[] data) throws SvcLogicException;

    /**
     * Issue a single SQL update operation (such as an insert, update or delete statement) via a
     * prepared statement, binding the given arguments.
     *
     * @param sql SQL containing bind parameters
     * @param data arguments to bind to the query (leaving it to the PreparedStatement to guess the
     *        corresponding SQL type)
     * @return the number of rows affected
     * @throws org.onap.ccsdk.sli.core.sli.SvcLogicException if there is any problem issuing the update
     */
    public int update(String sql, Object[] data) throws SvcLogicException;

    /**
     * Issue a single SQL Insert operation for CONFIG_TRANSACTION_LOG table via a prepared statement,
     * binding the given arguments.
     *
     * @param transactionLog arguments to bind to the query (mapping it to the PreparedStatement to the
     *        corresponding SQL type)
     * @throws org.onap.ccsdk.sli.core.sli.SvcLogicException if there is any problem issuing the insert
     */
    public void save(TransactionLog transactionLog) throws SvcLogicException;

    /**
     * Query CONFIG_TRANSACTION_LOG table for given request_id, mapping each row to a Java object via a
     * TransactionLog RowMapper.
     *
     * @param requestId argument to bind to the query (leaving it to the PreparedStatement to guess the
     *        corresponding SQL type)
     * @return the result List, containing mapped objects
     * @throws org.onap.ccsdk.sli.core.sli.SvcLogicException if the query fails
     */
    public List<TransactionLog> getTransactionsByRequestId(String requestId) throws SvcLogicException;

    /**
     * Query CONFIG_RESOURCE table for given input param to create a prepared statement to bind to the
     * query, mapping each row to a Java object via a ConfigResource RowMapper.
     *
     * @param configResource argument to bind to the query (mapping it to the PreparedStatement to the
     *        corresponding SQL type)
     * @return the result List, containing mapped objects
     * @throws org.onap.ccsdk.sli.core.sli.SvcLogicException if the query fails
     */
    public List<ConfigResource> getConfigResource(ConfigResource configResource) throws SvcLogicException;

    /**
     * Issue a single SQL update operation (insert or update statement) for CONFIG_RESOURCE table via a
     * prepared statement, binding the given arguments.
     *
     * @param configResource arguments to bind to the query (mapping it to the PreparedStatement to the
     *        corresponding SQL type)
     * @throws org.onap.ccsdk.sli.core.sli.SvcLogicException if there is any problem issuing the insert
     */
    public ConfigResource saveConfigResource(ConfigResource configResource) throws SvcLogicException;

    /**
     * Query ConcurrentHashMap having CONFIG_PROPERTY_MAP table data for given key.
     *
     * @param key key mapped to a value
     * @return the result string, containing mapped string value
     * @throws org.onap.ccsdk.sli.core.sli.SvcLogicException if fails
     */
    public String getConfigPropertyByKey(String key) throws SvcLogicException;

    /**
     * Query CONFIG_TRANSACTION_LOG table for given request_id, mapping each row to a Java object via a
     * TransactionLog RowMapper.
     *
     * @param requestId argument to bind to the query (leaving it to the PreparedStatement to guess the
     *        corresponding SQL type)
     * @param messageType argument to bind to the query (leaving it to the PreparedStatement to guess
     *        the corresponding SQL type)
     * @return the result List, containing mapped objects
     * @throws org.onap.ccsdk.sli.core.sli.SvcLogicException if the query fails
     */
    public List<TransactionLog> getTransactionsByRequestId(String requestId, String messageType)
            throws SvcLogicException;

}