package at.gv.egiz.eaaf.core.impl.idp.builder.attributes; import at.gv.egiz.eaaf.core.api.idp.IAttributeGenerator; import at.gv.egiz.eaaf.core.api.idp.IAuthData; import at.gv.egiz.eaaf.core.api.idp.IEidAuthData; import at.gv.egiz.eaaf.core.api.idp.IPvpAttributeBuilder; import at.gv.egiz.eaaf.core.api.idp.ISpConfiguration; import at.gv.egiz.eaaf.core.exceptions.AttributeBuilderException; import at.gv.egiz.eaaf.core.exceptions.UnavailableAttributeException; import lombok.extern.slf4j.Slf4j; @Slf4j @PvpMetadata public class EidIdentityStatusLevelAttributeBuiler implements IPvpAttributeBuilder { @Override public String getName() { return EID_IDENTITY_STATUS_LEVEL_NAME; } @Override public ATT build(final ISpConfiguration oaParam, final IAuthData authData, final IAttributeGenerator g) throws AttributeBuilderException { if (authData instanceof IEidAuthData) { if (((IEidAuthData) authData).getEidStatus() == null) { throw new UnavailableAttributeException(getName()); } return g.buildStringAttribute(getFriendlyName(), getName(), ((IEidAuthData) authData).getEidStatus().getUri()); } else { log.info(getFriendlyName() + " is only available in EAAF context"); } throw new UnavailableAttributeException(getName()); } @Override public ATT buildEmpty(final IAttributeGenerator g) { return g.buildEmptyAttribute(getFriendlyName(), getName()); } private String getFriendlyName() { return EID_IDENTITY_STATUS_LEVEL_FRIENDLY_NAME; } }