package eu.stork.peps.auth.commons; import java.util.List; import java.util.Map; /** * Interface for {@link AttributeListProcessor}. * * @author ricardo.ferreira@multicert.com * * @version $Revision: $, $Date: $ * * @see IPersonalAttributeList */ public interface IAttributeListProcessor { /** * Checks if attribute list only contains allowed attributes. * * @param attrList the requested attribute list * @param attributes the allowed attributes * * @return true is all the attributes are allowed. * * @see IPersonalAttributeList */ boolean hasAllowedAttributes(final IPersonalAttributeList attrList, final List attributes); /** * Lookup for business attribute. * * @param attrList the requested attribute list * @param normalAttributes the normal attributes * * @return true is at least one business attribute was requested. * * @see IPersonalAttributeList */ boolean hasBusinessAttributes(final IPersonalAttributeList attrList, final List normalAttributes); /** * Lookup for business attribute in normal attribute list (loaded by * implementation). * * @param attrList the requested attribute list * * @return true is at least one business attribute was requested. * * @see IPersonalAttributeList */ boolean hasBusinessAttributes(final IPersonalAttributeList attrList); /** * Adds eIdentifier, name, surname, and DateOfBirth attributes to get business * attributes from some AP. * * @param attrList the requested attribute list * @param attributes the list of attributes to add (eIdentifier, name, * surname, and DateOfBirth). * * @return the requested attribute list and the new attributes added * (eIdentifier, name, surname, and DateOfBirth). * * @see IPersonalAttributeList */ IPersonalAttributeList addAPMandatoryAttributes(final IPersonalAttributeList attrList, final List attributes); /** * Adds eIdentifier, name, surname, and DateOfBirth attributes, loaded by * implementation, to get business attributes from some AP. * * @param attrList the requested attribute list * * @return the requested attribute list and the new attributes added * (eIdentifier, name, surname, and DateOfBirth). * * @see IPersonalAttributeList */ IPersonalAttributeList addAPMandatoryAttributes(final IPersonalAttributeList attrList); /** * Removes from attribute list the given list of attributes. * * @param attrList the requested attribute list * @param attributes the list of attributes to remove. * * @return the requested attribute list and the attributes removed. * * @see IPersonalAttributeList */ IPersonalAttributeList removeAPMandatoryAttributes(final IPersonalAttributeList attrList, final List attributes); /** * Removes from attribute list the given list of attributes and change * attributes status if attribute was optional in the request. * * @param attrList the requested attribute list * @param attributes the map of attributes (attribute name, mandatory/optional) to remove. * * @return the requested attribute list and the attributes removed * * @see IPersonalAttributeList */ IPersonalAttributeList removeAPMandatoryAttributes(IPersonalAttributeList attrList, Map attributes); /** * Checks if mandate attribute exist in the requested Attribute List. Power * attribute name to lookup is loaded by implementation. * * @param attrList the requested attribute list. * * @return true if mandate attribute exists or false otherwise. * * @see IPersonalAttributeList */ boolean hasPowerAttribute(final IPersonalAttributeList attrList); /** * Checks if attribute name was requested and has value. * * @param attrList the requested attribute list. * @param attrName the attribute name to lookup for . * * @return true if attribute was requested and has value or false otherwise. * * @see IPersonalAttributeList */ boolean hasAttributeValue(final IPersonalAttributeList attrList, final String attrName); /** * Checks if attribute has value. * * @param attr the attribute to check. * * @return true if has value; * * @see PersonalAttribute */ boolean hasAttributeValue(final PersonalAttribute attr); /** * Gets a map (attribute name, attribute isRequired) of attributes added to attribute list. * * @return the Map of attributes added and if is required to attribute list. */ Map getNormalAttributesAdded(); }