re base code
[sdc.git] / catalog-dao / src / main / java / org / openecomp / sdc / be / dao / cassandra / schema / tables / OperationalEnvironmentsTableDescription.java
1 package org.openecomp.sdc.be.dao.cassandra.schema.tables;
2
3 import com.datastax.driver.core.DataType;
4 import org.apache.commons.lang3.tuple.ImmutablePair;
5 import org.openecomp.sdc.be.dao.cassandra.schema.ITableDescription;
6 import org.openecomp.sdc.be.resources.data.auditing.AuditingTypesConstants;
7
8 import java.util.*;
9
10
11 public class OperationalEnvironmentsTableDescription implements ITableDescription {
12
13     private static final String OPERATIONAL_ENVIRONMENT_TABLE = "operationalEnvironment";
14     private static final String ENVIRONMENT_ID = "environment_id";
15
16     @Override
17     public List<ImmutablePair<String, DataType>> primaryKeys() {
18         List<ImmutablePair<String, DataType>> keys = new ArrayList<>();
19         keys.add(new ImmutablePair<>(ENVIRONMENT_ID, DataType.varchar()));
20         return keys;
21     }
22
23     @Override
24     public List<ImmutablePair<String, DataType>> clusteringKeys() {
25         return new LinkedList<>();
26     }
27
28     @Override
29     public Map<String, ImmutablePair<DataType, Boolean>> getColumnDescription() {
30         Map<String, ImmutablePair<DataType, Boolean>> columns = new HashMap<>();
31         Arrays.stream(SdcOperationalEnvironmentFieldsDescription.values())
32                 .forEach(column -> columns.put(column.getFieldName(), ImmutablePair.of(column.getFieldType(), column.isIndexed())));
33         return columns;
34     }
35
36     @Override
37     public String getKeyspace() {
38         return AuditingTypesConstants.REPO_KEYSPACE;
39     }
40
41     @Override
42     public String getTableName() {
43         return OPERATIONAL_ENVIRONMENT_TABLE;
44     }
45
46     enum SdcOperationalEnvironmentFieldsDescription {
47         //there is also PK field "environmentID"
48         TENANT("tenant", DataType.varchar(), false),
49         IS_PRODUCTION("is_production", DataType.cboolean(), false),
50         ECOMP_WORKLOAD_CONTEXT("ecomp_workload_context", DataType.varchar(), false),
51         DMAAP_UEB_ADDRESS("dmaap_ueb_address", DataType.set(DataType.varchar()), false),
52         UEB_API_KEY("ueb_api_key",DataType.varchar(), false),
53         UEB_SECRET_KEY("ueb_secret_key",DataType.varchar(), false),
54         STATUS("status",DataType.varchar() ,true),
55         LAST_MODIFIED("last_modified",DataType.timestamp() ,false);
56
57         private String fieldName;
58         private boolean isIndexed;
59         private DataType fieldType;
60
61         SdcOperationalEnvironmentFieldsDescription(String fieldName, DataType dataType, boolean indexed ) {
62             this.fieldName = fieldName;
63             this.fieldType = dataType;
64             this.isIndexed = indexed;
65         }
66
67         public String getFieldName() {
68             return fieldName;
69         }
70
71         public boolean isIndexed() {
72             return isIndexed;
73         }
74
75         public DataType getFieldType() {
76             return fieldType;
77         }
78     }
79 }