09a01fb96257bb628de4a7673ca5597b45077f27
[sdc.git] /
1 package org.openecomp.sdc.be.dao.cassandra.schema.tables;
2
3 import java.util.ArrayList;
4 import java.util.HashMap;
5 import java.util.List;
6 import java.util.Map;
7
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;
11
12 import com.datastax.driver.core.DataType;
13
14 public class SdcSchemaFilesTableDescription implements ITableDescription {
15         
16         private static final String SDC_RELEASE_NUM = "sdcReleaseNum";
17         private static final String TIMESTAMP = "timestamp";
18         private static final String CONFORMANCE_LEVEL = "conformanceLevel";
19         
20         @Override
21         public List<ImmutablePair<String, DataType>> primaryKeys() {
22                 List<ImmutablePair<String, DataType>> keys = new ArrayList<>();
23                 keys.add(new ImmutablePair<String, DataType>(SDC_RELEASE_NUM, DataType.varchar()));
24                 keys.add(new ImmutablePair<String, DataType>(CONFORMANCE_LEVEL, DataType.varchar()));
25                 return keys;
26         }
27         
28         @Override
29         public List<ImmutablePair<String, DataType>> clusteringKeys() {
30                 List<ImmutablePair<String, DataType>> keys = new ArrayList<>();
31                 keys.add(new ImmutablePair<String, DataType>(TIMESTAMP, DataType.timestamp()));
32                 return keys;
33         }
34         
35         @Override
36         public Map<String, ImmutablePair<DataType, Boolean>> getColumnDescription() {
37                 Map<String, ImmutablePair<DataType, Boolean>> columns = new HashMap<>();
38
39                 for (SdcSchemaFilesFieldsDescription field : SdcSchemaFilesFieldsDescription.values()) {
40                         columns.put(field.getName(), new ImmutablePair<DataType, Boolean>(field.type, field.indexed));
41                 }
42
43                 return columns;
44         }
45
46         @Override
47         public String getKeyspace() {
48                 return AuditingTypesConstants.ARTIFACT_KEYSPACE;
49         }
50
51         @Override
52         public String getTableName() {
53                 return "sdcSchemaFiles";  
54         }
55         
56         enum SdcSchemaFilesFieldsDescription {
57                 FILE_NAME("fileName", DataType.varchar(), false),
58                 PAYLOAD("payload", DataType.blob(), false),
59                 CHECKSUM("checksum", DataType.varchar(), false);
60
61                 private String name;
62                 private DataType type;
63                 private boolean indexed;
64
65                 SdcSchemaFilesFieldsDescription(String name, DataType type, boolean indexed) {
66                         this.name = name;
67                         this.type = type;
68                         this.indexed = indexed;
69                 }
70
71                 public String getName() {
72                         return name;
73                 }
74
75                 public DataType getType() {
76                         return type;
77                 }
78
79                 public boolean isIndexed() {
80                         return indexed;
81                 }
82         }
83 }