SDN Controller Programming Guide

89
ColumnFamily.newColumnFamily("Alerts", StringSerializer .get(),
StringSerializer .get(),
ByteSerializer .get());
private static Collection<ColumnName<String, ?>> cfMeta;
static {
Collection<ColumnName<String, ?>>tmpCfMeta =
new ArrayList<ColumnName<String, ?>>();
tmpCfMeta.add(SYS_ID_NAME);
tmpCfMeta.add(DESC_COL_NAME);
tmpCfMeta.add(ORIGIN_COL_NAME);
tmpCfMeta.add(SEVERITY_COL_NAME);
tmpCfMeta.add(STATE_COL_NAME);
tmpCfMeta.add(TIMESTAMP_COL_NAME);
tmpCfMeta.add(TOPIC_COL_NAME);
cfMeta = Collections.unmodifiableCollection(tmpCfMeta);
}
private static ColumnFamilyDefinition<String, String> CF_DEF =
new ColumnFamilyDefinition<String, String>(
COL_FAMILY, BasicType.UTF8, BasicType.BYTES,
BasicType.UTF8, null, cfMeta);
private static final EnumColumnDecoder<String, Severity> SEV_DECODER
= new EnumColumnDecoder<String, Severity>(Severity.class);
private AlertColumnFamily() {
}
public static int compareColumns(
CassandraStorable<String, String> row1,
CassandraStorable<String, String> row2,
CassandraAlertSortAttribute sortBy) {
int retVal = 0;
switch (sortBy) {
case ORIGIN:
StringColumn<String> col1 =
(StringColumn) row1.getColumn(ORIGIN_COL_NAME);
StringColumn<String> col2 =
(StringColumn) row2.getColumn(ORIGIN_COL_NAME);
retVal = col1.compareTo(col2);
break;
case TIMESTAMP:
DateColumn<String> time1 =
(DateColumn) row1.getColumn(TIMESTAMP_COL_NAME);
DateColumn<String> time2 =