diff options
Diffstat (limited to 'mailnews/import/public/nsIImportFieldMap.idl')
-rw-r--r-- | mailnews/import/public/nsIImportFieldMap.idl | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/mailnews/import/public/nsIImportFieldMap.idl b/mailnews/import/public/nsIImportFieldMap.idl new file mode 100644 index 000000000..693e4be87 --- /dev/null +++ b/mailnews/import/public/nsIImportFieldMap.idl @@ -0,0 +1,72 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* 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/. */ + +/* + Field map interface for importing address books + + A field map is an arbitrary sized list of mozilla address book fields. + The field map is used by import to map fields from the import format + to mozilla fields. + For export, the map contains the ordered list of mozilla fields to + export! +*/ + +#include "nsISupports.idl" + +interface nsIAddrDatabase; +interface nsIMdbRow; +interface nsIAbCard; + +[scriptable, uuid(deee9264-1fe3-47b1-b745-47b22de454e2)] +interface nsIImportFieldMap : nsISupports +{ + /* + Flag to indicate whether or not to skip the first record, + for instance csv files often have field names as the first + record + */ + attribute boolean skipFirstRecord; + + readonly attribute long numMozFields; + readonly attribute long mapSize; + + wstring GetFieldDescription( in long index); + + /* + Set the size of the field map, all unpopulated entries + will default to -1 + */ + void SetFieldMapSize( in long size); + + /* + Initialize the field map to a given size with default values + */ + void DefaultFieldMap( in long size); + + /* + Return the field number that this index maps to, -1 for no field + */ + long GetFieldMap( in long index); + + /* + Set the field that this index maps to, -1 for no field + */ + void SetFieldMap( in long index, in long fieldNum); + + /* + Return if this field is "active" in the map. + */ + boolean GetFieldActive( in long index); + + /* + Set the active state of this field + */ + void SetFieldActive( in long index, in boolean active); + + /* + Set the value of the given field in the database row + */ + void SetFieldValue( in nsIAddrDatabase database, in nsIMdbRow row, in long fieldNum, in wstring value); +}; |