summaryrefslogtreecommitdiffstats
path: root/mailnews/addrbook/public/nsIAbLDAPCard.idl
blob: 6761623f2321fe3407341b1ed0f190fb01faa642 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
#include "nsIAbCard.idl"

interface nsIAbLDAPAttributeMap;
interface nsILDAPModification;
interface nsILDAPMessage;
interface nsIArray;

[scriptable, uuid(2831b3b0-30ef-4070-8ad3-90ae04980e11)]
interface nsIAbLDAPCard : nsISupports
{
  /**
   * Returns the required information for an LDAP update message.
   *
   * @param  aAttrMap    The map between LDAP attributes and card properties
   * @param  aClassCount The number of objectClass values
   * @param  aClasses    The objectClass values that the card needs to have
   * @param  updateType  This should be one of:
   *                         nsILDAPModification::MOD_ADD
   *                         nsILDAPModification::MOD_REPLACE
   *
   * @return             Returns an array of modifications required to
   *                     add or replace the card in the ldap directory.
   */
  nsIArray getLDAPMessageInfo(in nsIAbLDAPAttributeMap aAttrMap,
                              in unsigned long aClassCount,
                              [array, size_is(aClassCount)] in string aClasses,
                              in long updateType);

  /**
   * Builds a relative distinguished name (RDN) with the given set of
   * attributes.
   *
   * @param  aAttrMap    The map between LDAP attributes and card properties
   * @param  aAttrCount  The number of attributes to use for the RDN
   * @param  aAttributes The name of the attributes to use for the RDN
   *
   */
  ACString buildRdn(in nsIAbLDAPAttributeMap aAttrMap,
                    in unsigned long aAttrCount,
                    [array, size_is(aAttrCount)] in string aAttributes);
  
  /**
   * Stores meta-properties from a raw LDAP search result.
   *
   * @param aMessage     The LDAP search result message.
   *
   */
  void setMetaProperties(in nsILDAPMessage aMessage);

  attribute ACString dn;
};