ed79f4bd2f818fed157e2b3d843e74027dd6e689
[sdc.git] /
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
4  * ================================================================================
5  * Copyright (C) 2020 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.be.dao.cassandra.schema.tables;
22
23 import com.datastax.driver.core.DataType;
24 import com.google.common.collect.Lists;
25 import lombok.AllArgsConstructor;
26 import lombok.Getter;
27 import org.apache.commons.lang3.tuple.ImmutablePair;
28 import org.openecomp.sdc.be.dao.cassandra.schema.ITableDescription;
29 import org.openecomp.sdc.be.resources.data.auditing.AuditingTypesConstants;
30
31 import java.util.ArrayList;
32 import java.util.Arrays;
33 import java.util.HashMap;
34 import java.util.List;
35 import java.util.Map;
36
37 public class FeatureToggleEventTableDesc implements ITableDescription {
38
39     private static final String FEATURE_NAME = "feature_name";
40
41     @Override
42     public List<ImmutablePair<String, DataType>> primaryKeys() {
43         List<ImmutablePair<String, DataType>> keys = new ArrayList<>();
44         keys.add(new ImmutablePair<>(FEATURE_NAME, DataType.varchar()));
45         return keys;
46     }
47
48     @Override
49     public List<ImmutablePair<String, DataType>> clusteringKeys() {
50         return Lists.newArrayList();
51     }
52
53     @Override
54     public Map<String, ImmutablePair<DataType, Boolean>> getColumnDescription() {
55         Map<String, ImmutablePair<DataType, Boolean>> columns = new HashMap<>();
56         Arrays.stream(FeatureToggleEventFieldsDescription.values())
57                 .forEach(column -> columns.put(column.getName(), ImmutablePair.of(column.getType(), column.isIndexed())));
58         return columns;
59     }
60
61     @Override
62     public String getKeyspace() {
63         return AuditingTypesConstants.REPO_KEYSPACE;
64     }
65
66     @Override
67     public String getTableName() {
68         return AuditingTypesConstants.FEATURE_TOGGLE_STATE;
69     }
70
71     @Getter
72     @AllArgsConstructor
73     enum FeatureToggleEventFieldsDescription {
74         ENABLED("enabled", DataType.varchar(), false),
75         STRATEGY_ID("strategy_id", DataType.varchar(), false),
76         PARAMETERS("parameters", DataType.varchar(), false);
77
78         private final String name;
79         private final DataType type;
80         private final boolean indexed;
81
82     }
83 }