package com.emc.storageos.volumecontroller.impl;
import com.emc.storageos.coordinator.client.service.impl.DistributedLockQueueItemNameGenerator;
/**
* Implementation of {@link DistributedLockQueueItemNameGenerator} for ControlRequest instances, which uses
* their timestamp property.
*
* @author Ian Bibby
*/
public class ControlRequestLockQueueItemName implements DistributedLockQueueItemNameGenerator<ControlRequest> {
@Override
public String generate(ControlRequest item) {
if (item == null || item.getTimestamp() == null || item.getTimestamp() == 0L) {
throw new IllegalArgumentException("ControlRequest instance must have non-null, non-zero timestamp");
}
return item.getTimestamp().toString();
}
}