/** {@inheritDoc} */
  @Override
  public Set<String> toLDAPAttributeTypes(final AttributePath scimAttribute)
      throws InvalidResourceException {
    String subAttributeName = scimAttribute.getSubAttributeName();
    if (subAttributeName != null) {
      // Just to make sure the sub-attribute is a valid one for this attribute.
      descriptor.getSubAttribute(subAttributeName);
    }

    return Collections.singleton(ATTR_MANAGER);
  }
  /** {@inheritDoc} */
  @Override
  public SCIMAttribute toSCIMAttribute(
      final Entry entry,
      final LDAPRequestInterface ldapInterface,
      final LDAPSearchResolver searchResolver)
      throws SCIMException {
    if (entry.hasAttribute(ATTR_MANAGER)) {
      final String dn = entry.getAttributeValue(ATTR_MANAGER);
      final String resourceID = searchResolver.getIdFromDn(ldapInterface, dn);

      final List<SCIMAttribute> attributes = new ArrayList<SCIMAttribute>(1);
      attributes.add(
          SCIMAttribute.create(
              descriptor.getSubAttribute("managerId"),
              SCIMAttributeValue.createStringValue(resourceID)));

      return SCIMAttribute.create(descriptor, SCIMAttributeValue.createComplexValue(attributes));
    }

    return null;
  }