package at.gv.egiz.eaaf.core.impl.idp.builder.attributes; import org.slf4j.Logger; import org.slf4j.LoggerFactory; 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; @PVPMETADATA public class EidIdentityStatusLevelAttributeBuiler implements IPVPAttributeBuilder { private static final Logger log = LoggerFactory.getLogger(EidIdentityStatusLevelAttributeBuiler.class); @Override public String getName() { return EID_IDENTITY_STATUS_LEVEL_NAME; } @Override public ATT build(ISPConfiguration oaParam, IAuthData authData, 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(IAttributeGenerator g) { return g.buildEmptyAttribute(getFriendlyName(), getName()); } private String getFriendlyName() { return EID_IDENTITY_STATUS_LEVEL_FRIENDLY_NAME; } }