1 package org.openecomp.sdc.be.dao.cassandra.schema.tables;
3 import java.util.ArrayList;
4 import java.util.HashMap;
8 import org.apache.commons.lang3.tuple.ImmutablePair;
9 import org.openecomp.sdc.be.dao.cassandra.schema.ITableDescription;
10 import org.openecomp.sdc.be.resources.data.auditing.AuditingTypesConstants;
12 import com.datastax.driver.core.DataType;
14 public abstract class DistribBaseEventTableDesc implements ITableDescription {
16 public List<ImmutablePair<String, DataType>> primaryKeys() {
17 List<ImmutablePair<String, DataType>> keys = new ArrayList<>();
18 keys.add(new ImmutablePair<String, DataType>(TIMEBASED_UUID_FIELD, DataType.timeuuid()));
23 public List<ImmutablePair<String, DataType>> clusteringKeys() {
24 List<ImmutablePair<String, DataType>> keys = new ArrayList<>();
25 keys.add(new ImmutablePair<String, DataType>(TIMESTAMP_FIELD, DataType.timestamp()));
30 public String getKeyspace() {
31 return AuditingTypesConstants.AUDIT_KEYSPACE;
35 public Map<String, ImmutablePair<DataType, Boolean>> getColumnDescription() {
36 Map<String, ImmutablePair<DataType, Boolean>> columns = new HashMap<>();
38 for (DistFieldsDescription field : DistFieldsDescription.values()) {
39 columns.put(field.getName(), new ImmutablePair<DataType, Boolean>(field.type, field.indexed));
41 updateColumnDistribDescription(columns);
45 protected abstract void updateColumnDistribDescription(final Map<String, ImmutablePair<DataType, Boolean>> columns);
48 enum DistFieldsDescription {
49 ACTION("action", DataType.varchar(), true),
50 STATUS("status", DataType.varchar(), false),
51 DESCRIPTION("description", DataType.varchar(), false),
52 REQUEST_ID("request_id", DataType.varchar(), false),
53 SERVICE_INST_ID("service_instance_id", DataType.varchar(), false);
56 private DataType type;
57 private boolean indexed;
59 DistFieldsDescription(String name, DataType type, boolean indexed) {
62 this.indexed = indexed;
65 public String getName() {
69 public DataType getType() {
73 public boolean isIndexed() {