package at.gv.egovernment.moa.id.auth.modules.ehvd.attributes; import org.apache.commons.lang3.StringUtils; 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.egovernment.moa.id.auth.modules.ehvd.ConfigurationProperties; import at.gv.egovernment.moa.id.auth.modules.ehvd.client.wsdl.GdaDescriptor; import at.gv.egovernment.moa.logging.Logger; public abstract class AbstractEhvdAttributeBuilder implements IPVPAttributeBuilder { @Override public ATT build(ISPConfiguration spConfig, IAuthData authData, IAttributeGenerator g) throws AttributeBuilderException { try { GdaDescriptor fullGdaInfo = authData.getGenericData(ConfigurationProperties.ATTRIBUTE_URN_EHVD_PREFIX, GdaDescriptor.class); if (fullGdaInfo != null) { String attrValue = generateAttributeValue(fullGdaInfo); Logger.debug(StringUtils.isEmpty(attrValue) ? "Skip" : "Build" + "attribute: " + getName()); return g.buildStringAttribute(getName(), getName(), StringUtils.isNotEmpty(attrValue) ? attrValue : null); } else { Logger.trace("Skipping attr: " + getName() + " because no GDA info available"); return null; } } catch (ClassCastException e) { Logger.trace("Skipping attr: " + getName() + " because no GDA info available"); return null; } } @Override public ATT buildEmpty(IAttributeGenerator g) { return g.buildEmptyAttribute(getName(), getName()); } protected abstract String generateAttributeValue(GdaDescriptor fullGdaInfo); }