/*
* Copyright (c) 2012 EMC Corporation
* All Rights Reserved
*/
package com.emc.storageos.db.client.impl;
import com.netflix.astyanax.model.Column;
import java.util.*;
/**
*
*/
public class RemovedColumnsList implements IndexColumnList {
private Map<String, List<Column<CompositeColumnName>>> _cleanupList;
private Map<String, Map<String, List<Column<CompositeColumnName>>>> _allColMap;
public RemovedColumnsList() {
_cleanupList = new HashMap<>();
_allColMap = new HashMap<>();
}
@Override
public void add(String key, Column<CompositeColumnName> column) {
List<Column<CompositeColumnName>> cleanList = _cleanupList.get(key);
Map<String, List<Column<CompositeColumnName>>> keyColumns = _allColMap.get(key);
if (cleanList == null) {
cleanList = new ArrayList<>();
_cleanupList.put(key, cleanList);
keyColumns = new HashMap<>();
_allColMap.put(key, keyColumns);
}
cleanList.add(column);
String colName = column.getName().getOne();
List<Column<CompositeColumnName>> columns = keyColumns.get(colName);
if (columns == null) {
columns = new ArrayList<>();
keyColumns.put(colName, columns);
}
columns.add(column);
}
@Override
public Map<String, List<Column<CompositeColumnName>>> getColumnsToClean() {
return Collections.unmodifiableMap(_cleanupList);
}
@Override
public Map<String, List<Column<CompositeColumnName>>> getAllColumns(String key) {
return Collections.unmodifiableMap(_allColMap.get(key));
}
@Override
public boolean isEmpty() {
return _cleanupList.isEmpty();
}
public void clear() {
_cleanupList.clear();
_allColMap.clear();
}
}