package org.infinispan.util;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import org.infinispan.atomic.DeltaCompositeKey;
import org.infinispan.context.impl.TxInvocationContext;
/**
* Utility methods to deal with the DeltaCompositeKey.
*
* @author Pedro Ruivo
* @since 6.0
*/
public class DeltaCompositeKeyUtil {
private DeltaCompositeKeyUtil() { /* no-op */ }
public static Collection<Object> getAffectedKeysFromContext(TxInvocationContext context) {
return filterDeltaCompositeKeys(context.getAffectedKeys());
}
public static Collection<Object> filterDeltaCompositeKeys(Collection<Object> keys) {
if (keys == null || keys.isEmpty()) {
return keys;
}
List<Object> list = new ArrayList<Object>(keys.size());
for (Object key : keys) {
list.add(filterDeltaCompositeKey(key));
}
return list;
}
public static Object filterDeltaCompositeKey(Object key) {
if (key == null || !(key instanceof DeltaCompositeKey)) {
return key;
}
return ((DeltaCompositeKey) key).getDeltaAwareValueKey();
}
}