summaryrefslogtreecommitdiffstats
path: root/mailnews/addrbook/public/nsIAbManager.idl
diff options
context:
space:
mode:
Diffstat (limited to 'mailnews/addrbook/public/nsIAbManager.idl')
-rw-r--r--mailnews/addrbook/public/nsIAbManager.idl190
1 files changed, 190 insertions, 0 deletions
diff --git a/mailnews/addrbook/public/nsIAbManager.idl b/mailnews/addrbook/public/nsIAbManager.idl
new file mode 100644
index 000000000..49a585544
--- /dev/null
+++ b/mailnews/addrbook/public/nsIAbManager.idl
@@ -0,0 +1,190 @@
+/* -*- Mode: IDL; 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 "nsISupports.idl"
+#include "nsIAbListener.idl"
+
+interface mozIDOMWindowProxy;
+interface nsIAbDirectory;
+interface nsIAbCard;
+interface nsIAbDirectoryProperties;
+interface nsIFile;
+interface nsISimpleEnumerator;
+interface nsIAbBooleanExpression;
+
+/**
+ * nsIAbManager is an interface to the main address book mananger
+ * via the contract id "@mozilla.org/abmanager;1"
+ *
+ * It contains the main functions to create and delete address books as well
+ * as some helper functions.
+ */
+[scriptable, uuid(ea0d8b3d-a549-4874-82d8-3a82cee2a3f1)]
+interface nsIAbManager : nsISupports
+{
+ /**
+ * Returns an enumerator containing all the top-level directories
+ * (non-recursive)
+ */
+ readonly attribute nsISimpleEnumerator directories;
+
+ /**
+ * Returns the directory that represents the supplied URI.
+ *
+ * @param aURI The URI of the address book to find.
+ * @return The found address book.
+ */
+ nsIAbDirectory getDirectory(in ACString aURI);
+
+ /**
+ * Returns the directory that has the supplied dirPrefId.
+ *
+ * @param aDirPrefId The dirPrefId of the directory.
+ * @return The found AB directory.
+ */
+ nsIAbDirectory getDirectoryFromId(in ACString aDirPrefId);
+
+ /**
+ * Creates a new address book.
+ *
+ * @param aDirName The description of the address book.
+ * @param aURI The URI for the address book. This is specific to each
+ * type of address book.
+ * @param aType The type of the address book (see nsDirPrefs.h)
+ * @param aPrefName Overrides the default of ldap_2.servers.<aDirName>
+ * (note that the caller must ensure its uniqueness).
+ */
+ ACString newAddressBook(in AString aDirName, in ACString aURI,
+ in unsigned long aType,
+ [optional] in ACString aPrefName);
+
+ /**
+ * Deletes an address book.
+ *
+ * @param aURI The URI for the address book. This is specific to each
+ * type of address book.
+ */
+ void deleteAddressBook(in ACString aURI);
+
+ /**
+ * Exports an address book, it will provide a dialog to the user for the
+ * location to save the file to and will then save the address book to media.
+ *
+ * @param aParentWin Parent Window for the file save dialog to use.
+ * @param aDirectory The directory to export.
+ */
+ void exportAddressBook(in mozIDOMWindowProxy aParentWin, in nsIAbDirectory aDirectory);
+
+ /**
+ * Adds a nsIAbListener to receive notifications of address book updates
+ * according to the specified notifyFlags.
+ *
+ * @param aListener The listener that is to receive updates.
+ * @param aNotifyFlags A bitwise-or of abListenerNotifyFlagValue items
+ * specifying which notifications to receive. See
+ * nsIAbListener for possible values.
+ */
+ void addAddressBookListener(in nsIAbListener aListener,
+ in abListenerNotifyFlagValue aNotifyFlags);
+
+ /**
+ * Removes a nsIAbListener from receive notifications of address book
+ * updates.
+ *
+ * @param aListener The listener that is to no longer receive updates.
+ */
+ void removeAddressBookListener(in nsIAbListener aListener);
+
+ /**
+ * Call to notify the registered listeners when a property on an item has
+ * changed.
+ *
+ * @param aItem The items that has changed (e.g. an nsIAbDirectory)
+ * @param aProperty The property that has changed (e.g. DirName)
+ * @param aOldValue The old value of the property.
+ * @param aNewValue The new value of the property.
+ */
+ void notifyItemPropertyChanged(in nsISupports aItem,
+ in string aProperty,
+ in wstring aOldValue,
+ in wstring aNewValue);
+
+ /**
+ * Call to notify the registered listeners when a directory item is added.
+ *
+ * @param aParentDirectory The parent directory of the item that has been
+ * added.
+ * @param aItem The item that has been added.
+ */
+ void notifyDirectoryItemAdded(in nsIAbDirectory aParentDirectory,
+ in nsISupports aItem);
+
+ /**
+ * Call to notify the registered listeners when a directory item is removed.
+ *
+ * @param aParentDirectory The parent directory of the item that has been
+ * removed.
+ * @param aItem The item that has been removed.
+ */
+ void notifyDirectoryItemDeleted(in nsIAbDirectory aParentDirectory,
+ in nsISupports aItem);
+
+ /**
+ * Call to notify the registered listeners when a directory is removed.
+ *
+ * @param aParentDirectory The parent directory of the directory that has
+ * been removed.
+ * @param aDirectory The directory that has been removed.
+ */
+ void notifyDirectoryDeleted(in nsIAbDirectory aParentDirectory,
+ in nsISupports aDirectory);
+
+ /**
+ * Returns the user profile directory. NOTE: this should not be used
+ * as it may go away soon.
+ */
+ readonly attribute nsIFile userProfileDirectory;
+
+ /**
+ * Finds out if the mailing list name exists in any *mork/MDB* based
+ * address book
+ *
+ * @param aName The name of the list to try and find.
+ *
+ * @return True if the name exists.
+ */
+ boolean mailListNameExists(in wstring name);
+
+ /**
+ * Translates an escaped vcard string into a nsIAbCard.
+ *
+ * @param escapedVCardStr The string containing the vcard.
+ *
+ * @return A card containing the translated vcard data.
+ */
+ nsIAbCard escapedVCardToAbCard(in string escapedVCardStr);
+
+ /**
+ * Generates a UUID from a (directory ID, local ID) tuple.
+ *
+ * Use of this method is preferred in such cases, since it is designed to work
+ * with other methods of this interface.
+ *
+ * @param directoryId The directory ID.
+ * @param localId The per-directory ID.
+ * @return A string to use for the UUID.
+ */
+ AUTF8String generateUUID(in AUTF8String directoryId, in AUTF8String localId);
+
+
+ /**
+ * A utility function that converts an nsIAbDirectory query string to an
+ * nsIAbBooleanExpression.
+ *
+ * @param aQueryString The nsIAbDirectory query string
+ * @return an nsIAbBooleanExpression for the query string
+ */
+ nsIAbBooleanExpression convertQueryStringToExpression(in AUTF8String aQueryString);
+};