Catalog alignment
[sdc.git] / catalog-dao / src / main / java / org / openecomp / sdc / be / dao / cassandra / schema / tables / FeatureToggleEventTableDesc.java
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 org.apache.commons.lang3.tuple.ImmutablePair;
26 import org.openecomp.sdc.be.dao.cassandra.schema.ITableDescription;
27 import org.openecomp.sdc.be.resources.data.auditing.AuditingTypesConstants;
28
29 import java.util.ArrayList;
30 import java.util.Arrays;
31 import java.util.HashMap;
32 import java.util.List;
33 import java.util.Map;
34
35 public class FeatureToggleEventTableDesc implements ITableDescription {
36
37     private static final String FEATURE_NAME = "feature_name";
38
39     @Override
40     public List<ImmutablePair<String, DataType>> primaryKeys() {
41         List<ImmutablePair<String, DataType>> keys = new ArrayList<>();
42         keys.add(new ImmutablePair<>(FEATURE_NAME, DataType.varchar()));
43         return keys;
44     }
45
46     @Override
47     public List<ImmutablePair<String, DataType>> clusteringKeys() {
48         return Lists.newArrayList();
49     }
50
51     @Override
52     public Map<String, ImmutablePair<DataType, Boolean>> getColumnDescription() {
53         Map<String, ImmutablePair<DataType, Boolean>> columns = new HashMap<>();
54         Arrays.stream(FeatureToggleEventFieldsDescription.values())
55                 .forEach(column -> columns.put(column.getName(), ImmutablePair.of(column.getType(), column.isIndexed())));
56         return columns;
57     }
58
59     @Override
60     public String getKeyspace() {
61         return AuditingTypesConstants.REPO_KEYSPACE;
62     }
63
64     @Override
65     public String getTableName() {
66         return AuditingTypesConstants.FEATURE_TOGGLE_STATE;
67     }
68
69     enum FeatureToggleEventFieldsDescription {
70         ENABLED("enabled", DataType.varchar(), false),
71         STRATEGY_ID("strategy_id", DataType.varchar(), false),
72         PARAMETERS("parameters", DataType.varchar(), false);
73
74         private String name;
75         private DataType type;
76         private boolean indexed;
77
78         FeatureToggleEventFieldsDescription(String name, DataType type, boolean indexed) {
79             this.name = name;
80             this.type = type;
81             this.indexed = indexed;
82         }
83
84         public String getName() {
85             return name;
86         }
87
88         public DataType getType() {
89             return type;
90         }
91
92         public boolean isIndexed() {
93             return indexed;
94         }
95
96     }
97 }