package at.gv.egovernment.moa.id.protocols.builder.attributes; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import at.gv.egiz.eaaf.core.api.data.ExtendedPVPAttributeDefinitions; 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.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 at.gv.egovernment.moa.id.commons.api.IOAAuthParameters; public class EidSpMandateProfilesAttributeBuilder implements IPVPAttributeBuilder { private static final Logger log = LoggerFactory.getLogger(EidSpMandateProfilesAttributeBuilder.class); @Override public T build(final ISPConfiguration oaParam, final IAuthData authData, final IAttributeGenerator g) throws AttributeBuilderException { if (oaParam instanceof IOAAuthParameters && ((IOAAuthParameters) oaParam).isShowMandateCheckBox()) { return g.buildStringAttribute(getFriendlyName(), getName(), StringUtils.join( ((IOAAuthParameters) oaParam).getMandateProfiles(), ",")); } else { log.info("{} is only available in AuthHandler context", getFriendlyName()); } throw new UnavailableAttributeException(getName()); } @Override public T buildEmpty(final IAttributeGenerator g) { return g.buildEmptyAttribute(getFriendlyName(), getName()); } @Override public String getName() { return ExtendedPVPAttributeDefinitions.SP_USESMANDATES_NAME; } private String getFriendlyName() { return ExtendedPVPAttributeDefinitions.SP_USESMANDATES_FRIENDLY_NAME; } }