/*
* Copyright (c) 2015 EMC Corporation
* All Rights Reserved
*/
package com.emc.vipr.client.core.filters;
import com.emc.storageos.model.block.VolumeRestRep;
/**
* Filter for listing volumes with a particular RecoverPoint personality (source/target/metadata).
*/
public class RecoverPointPersonalityFilter extends DefaultResourceFilter<VolumeRestRep> {
public static RecoverPointPersonalityFilter SOURCE = new RecoverPointPersonalityFilter("SOURCE");
public static RecoverPointPersonalityFilter TARGET = new RecoverPointPersonalityFilter("TARGET");
public static RecoverPointPersonalityFilter METADATA = new RecoverPointPersonalityFilter("METADATA");
private final String personality;
public RecoverPointPersonalityFilter(String personality) {
this.personality = personality;
}
@Override
public boolean accept(VolumeRestRep item) {
if ((item.getProtection() != null) && (item.getProtection().getRpRep() != null)) {
return isPersonalityMatch(item.getProtection().getRpRep().getPersonality());
}
else {
return false;
}
}
protected boolean isPersonalityMatch(String personality) {
return this.personality.equals(personality);
}
}