package de.persosim.simulator.secstatus; /** * Classes that implement this interface are used to store relevant data for the * given SecurityMechanism within the SecStatus. * * The state of SecMechanisms can be queried from the SecStatus, which returns * the genuine SecMechanism as is. SecMechanisms are expected to be immutable to * ensure the consistency of the SecStatus. * * SecConditions can refer to SecMechanisms and rely on the provided data to * perform the condition checking. * * @author amay * */ public interface SecMechanism { /** * Decide if this {@link SecMechanism} needs to be deleted if the * {@link SecStatus} receives the given event. * * @param event * @return true, if deletion is necessary */ boolean needsDeletionInCaseOf(SecurityEvent event); /** * This function returns the key which identifies the {@link SecMechanism} * @return a class object which identifies the {@link SecMechanism} */ public Class<? extends SecMechanism> getKey(); }