package de.persosim.simulator.seccondition;
import java.util.Collection;
import java.util.HashSet;
import de.persosim.simulator.secstatus.PaceUsedPasswordMechanism;
import de.persosim.simulator.secstatus.SecMechanism;
/**
* This condition can be used to check for the password of PACE.
*
* @author cstroh
*
*/
public class PaceWithPasswordRunningSecurityCondition implements SecCondition {
String neededPassword;
public PaceWithPasswordRunningSecurityCondition() {
}
public PaceWithPasswordRunningSecurityCondition(String passwordName) {
this.neededPassword = passwordName;
}
@Override
public boolean check(Collection<SecMechanism> mechanisms) {
for (SecMechanism mechanism : mechanisms) {
if (mechanism instanceof PaceUsedPasswordMechanism
&& ((PaceUsedPasswordMechanism) mechanism)
.getUsedPassword().getPasswordName().equals(neededPassword)) {
return true;
}
}
return false;
}
@Override
public String toString() {
return getClass().getSimpleName() + "[" + neededPassword + "]";
}
@Override
public Collection<Class<? extends SecMechanism>> getNeededMechanisms() {
HashSet<Class<? extends SecMechanism>> result = new HashSet<>();
result.add(PaceUsedPasswordMechanism.class);
return result;
}
}