/* * Copyright (c) 2015 EMC Corporation * All Rights Reserved */ package com.emc.storageos.db.client.impl; import java.util.Map; import java.util.List; import com.netflix.astyanax.model.ColumnFamily; import com.netflix.astyanax.model.Column; import com.emc.storageos.db.client.model.DataObject; public abstract class DbIndex <T extends CompositeIndexColumnName> { protected String fieldName; protected ColumnFamily<String, T> indexCF; protected boolean indexByKey = false; DbIndex(ColumnFamily<String, T> indexCF) { this.indexCF = indexCF; } void setFieldName(String name) { this.fieldName = name; } void setIndexByKey(boolean indexByKey) { this.indexByKey = indexByKey; } ColumnFamily<String, T> getIndexCF() { return indexCF; } public void setIndexCF(ColumnFamily<String, T> cf) { indexCF = cf; } abstract boolean addColumn(String recordKey, CompositeColumnName column, Object value, String className, RowMutator mutator, Integer ttl, DataObject obj); abstract boolean removeColumn(String recordKey, Column<CompositeColumnName> column, String className, RowMutator mutator, Map<String, List<Column<CompositeColumnName>>> fieldColumnMap); boolean removeColumn(String recordKey, Column<CompositeColumnName> column, String className, RowMutator mutator, Map<String, List<Column<CompositeColumnName>>> fieldColumnMap, DataObject obj) { return removeColumn(recordKey, column, className, mutator, fieldColumnMap); } public boolean needConsistency() { return true; } @Override public String toString() { StringBuilder builder = new StringBuilder(getClass().getSimpleName()); builder.append("\n"); builder.append("fieldName:"); builder.append(fieldName); builder.append("\n"); return builder.toString(); } }