class LdapUserNodeMapper extends BaseAttributeMapper<LdapUserNode> {

    @Override
    public LdapUserNode mapFromAttributes(Attributes attributes) throws NamingException {
        var idAttrValue = getSingleAttributeValue(attributes, idAttribute, String.class);
        var nameAttrValue = getSingleAttributeValue(attributes, "name", String.class);
        var givenNameAttrValue = getSingleAttributeValue(attributes, "givenName", String.class);
        var mailAttrValue = getSingleAttributeValue(attributes, "mail", String.class);
        var managerAttrValue = getSingleAttributeValue(attributes, "manager", String.class);
        var snAttrValue = getSingleAttributeValue(attributes, "sn", String.class);
        var departmentAttrValue = getSingleAttributeValue(attributes, "department", String.class);
        var divisionAttrValue = getSingleAttributeValue(attributes, "division", String.class);
        var dnAttrValue = getSingleAttributeValue(attributes, "distinguishedName", String.class);

        var directReportsAttrValue = getAllAttributeValues(attributes, "directReports", String.class);

        return new LdapUserNode(idAttrValue, nameAttrValue, givenNameAttrValue, snAttrValue,
                mailAttrValue, divisionAttrValue, departmentAttrValue, dnAttrValue, managerAttrValue, directReportsAttrValue);
    }

    public  LdapUserNodeMapper(String idAttribute);

}