556824f7eca7d12d6ab9ae77ef29506cb4c6b7a4
[sdc.git] /
1 package org.openecomp.sdc.be.dao.cassandra.schema.tables;
2
3 import java.util.ArrayList;
4 import java.util.Arrays;
5 import java.util.HashMap;
6 import java.util.List;
7 import java.util.Map;
8
9 import org.apache.commons.lang3.tuple.ImmutablePair;
10 import org.openecomp.sdc.be.dao.cassandra.schema.ITableDescription;
11 import org.openecomp.sdc.be.resources.data.auditing.AuditingTypesConstants;
12
13 import com.datastax.driver.core.DataType;
14
15 public class EcompOperationalEnvironmentEventTableDesc implements ITableDescription {
16
17     private static final String OPERATIONAL_ENVIRONMENT_ID = "operational_environment_id";
18
19     @Override
20     public List<ImmutablePair<String, DataType>> primaryKeys() {
21         List<ImmutablePair<String, DataType>> keys = new ArrayList<>();
22         keys.add(new ImmutablePair<String, DataType>(OPERATIONAL_ENVIRONMENT_ID, DataType.varchar()));
23         return keys;
24     }
25
26     @Override
27     public List<ImmutablePair<String, DataType>> clusteringKeys() {
28         List<ImmutablePair<String, DataType>> keys = new ArrayList<>();
29         keys.add(new ImmutablePair<String, DataType>(TIMESTAMP_FIELD, DataType.timestamp()));
30         return keys;
31     }
32
33     @Override
34     public String getKeyspace() {
35         return AuditingTypesConstants.AUDIT_KEYSPACE;
36     }
37
38     @Override
39     public Map<String, ImmutablePair<DataType, Boolean>> getColumnDescription() {
40         Map<String, ImmutablePair<DataType, Boolean>> columns = new HashMap<>();
41
42         Arrays.stream(EcompOpEnvFieldsDescription.values())
43                 .forEach(column -> columns.put(column.getName(), ImmutablePair.of(column.getType(), column.isIndexed())));
44         return columns;
45     }
46
47     @Override
48     public String getTableName() {
49         return AuditingTypesConstants.ECOMP_OPERATIONAL_ENV_EVENT_TYPE;
50     }
51
52     enum EcompOpEnvFieldsDescription {
53         ACTION("action", DataType.varchar(), false),
54         OPERATIONAL_ENVIRONMENT_NAME("operational_environment_name", DataType.varchar(), false),
55         OPERATIONAL_ENVIRONMENT_TYPE("operational_environment_type", DataType.varchar(), false),
56         OPERATIONAL_ENVIRONMENT_ACTION("operational_environment_action", DataType.varchar(), false),
57         TENANT_CONTEXT("tenant_context", DataType.varchar(), false);
58
59         private String name;
60         private DataType type;
61         private boolean indexed;
62
63         EcompOpEnvFieldsDescription(String name, DataType type, boolean indexed) {
64             this.name = name;
65             this.type = type;
66             this.indexed = indexed;
67         }
68
69         public String getName() {
70             return name;
71         }
72
73         public DataType getType() {
74             return type;
75         }
76
77         public boolean isIndexed() {
78             return indexed;
79         }
80     }
81 }