}
@Override
public <T extends HelixProperty> boolean setProperty(PropertyKey key, T value)
{
PropertyType type = key.getType();
if (!value.isValid())
{
throw new HelixException("The ZNRecord for " + type + " is not valid.");
}
String path = key.getPath();
int options = constructOptions(type);
if (type.usePropertyTransferServer())
{
if (_zkPropertyTransferSvcUrl != null && _zkPropertyTransferClient != null)
{
ZNRecordUpdate update = new ZNRecordUpdate(path, OpCode.SET, value.getRecord());
_zkPropertyTransferClient.enqueueZNRecordUpdate(update, _zkPropertyTransferSvcUrl);