package de.persosim.simulator.secstatus;
import de.persosim.simulator.protocols.Oid;
import de.persosim.simulator.protocols.ta.Authorization;
/**
* This class represents a {@link SecMechanism} storing unchangeable authorization information which are provided in PACE.
* @author jkoch
*
*/
public class ConfinedAuthorizationMechanism extends AbstractSecMechanism {
private AuthorizationStore authorizationStore;
public ConfinedAuthorizationMechanism(ConfinedAuthorizationMechanism authorizationMechanism) {
authorizationStore = authorizationMechanism.getAuthorizationStore();
}
public ConfinedAuthorizationMechanism(AuthorizationStore authorizationStore) {
this.authorizationStore = authorizationStore.clone();
}
@Override
public boolean needsDeletionInCaseOf(SecurityEvent event) {
if(event.equals(SecurityEvent.SECURE_MESSAGING_SESSION_ENDED)) {
return true;
}
return false;
}
public Authorization getAuthorization(Oid oid) {
return authorizationStore.getAuthorization(oid);
}
public AuthorizationStore getAuthorizationStore() {
return authorizationStore.clone();
}
@Override
public ConfinedAuthorizationMechanism clone() {
return new ConfinedAuthorizationMechanism(this);
}
}