| /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ |
| /* ***** BEGIN LICENSE BLOCK ***** |
| * Version: MPL 1.1/GPL 2.0/LGPL 2.1 |
| * |
| * The contents of this file are subject to the Mozilla Public License Version |
| * 1.1 (the "License"); you may not use this file except in compliance with |
| * the License. You may obtain a copy of the License at |
| * http://www.mozilla.org/MPL/ |
| * |
| * Software distributed under the License is distributed on an "AS IS" basis, |
| * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License |
| * for the specific language governing rights and limitations under the |
| * License. |
| * |
| * The Original Code is mozilla.org code. |
| * |
| * The Initial Developer of the Original Code is Robert Sayre. |
| * Portions created by the Initial Developer are Copyright (C) 2006 |
| * the Initial Developer. All Rights Reserved. |
| * |
| * Contributor(s): |
| * |
| * Alternatively, the contents of this file may be used under the terms of |
| * either the GNU General Public License Version 2 or later (the "GPL"), or |
| * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), |
| * in which case the provisions of the GPL or the LGPL are applicable instead |
| * of those above. If you wish to allow use of your version of this file only |
| * under the terms of either the GPL or the LGPL, and not to allow others to |
| * use your version of this file under the terms of the MPL, indicate your |
| * decision by deleting the provisions above and replace them with the notice |
| * and other provisions required by the GPL or the LGPL. If you do not delete |
| * the provisions above, a recipient may use your version of this file under |
| * the terms of any one of the MPL, the GPL or the LGPL. |
| * |
| * ***** END LICENSE BLOCK ***** */ |
| |
| #include "nsIFeedElementBase.idl" |
| |
| interface nsIURI; |
| interface nsIWritablePropertyBag2; |
| interface nsIArray; |
| interface nsIFeedTextConstruct; |
| |
| /** |
| * A shared base for feeds and items, which are pretty similar, |
| * but they have some divergent attributes and require |
| * different convenience methods. |
| */ |
| [scriptable, uuid(577a1b4c-b3d4-4c76-9cf8-753e6606114f)] |
| interface nsIFeedContainer : nsIFeedElementBase |
| { |
| /** |
| * Many feeds contain an ID distinct from their URI, and |
| * entries have standard fields for this in all major formats. |
| */ |
| attribute AString id; |
| |
| /** |
| * The fields found in the document. Common Atom |
| * and RSS fields are normalized. This includes some namespaced |
| * extensions such as dc:subject and content:encoded. |
| * Consumers can avoid normalization by checking the feed type |
| * and accessing specific fields. |
| * |
| * Common namespaces are accessed using prefixes, like get("dc:subject");. |
| * See nsIFeedResult::registerExtensionPrefix. |
| */ |
| attribute nsIWritablePropertyBag2 fields; |
| |
| /** |
| * Sometimes there's no title, or the title contains markup, so take |
| * care in decoding the attribute. |
| */ |
| attribute nsIFeedTextConstruct title; |
| |
| /** |
| * Returns the primary link for the feed or entry. |
| */ |
| attribute nsIURI link; |
| |
| /** |
| * Returns all links for a feed or entry. |
| */ |
| attribute nsIArray links; |
| |
| /** |
| * Returns the categories found in a feed or entry. |
| */ |
| attribute nsIArray categories; |
| |
| /** |
| * The rights or license associated with a feed or entry. |
| */ |
| attribute nsIFeedTextConstruct rights; |
| |
| /** |
| * A list of nsIFeedPersons that authored the feed. |
| */ |
| attribute nsIArray authors; |
| |
| /** |
| * A list of nsIFeedPersons that contributed to the feed. |
| */ |
| attribute nsIArray contributors; |
| |
| /** |
| * The date the feed was updated, in RFC822 form. Parsable by JS |
| * and mail code. |
| */ |
| attribute AString updated; |
| |
| /** |
| * Syncs a container's fields with its convenience attributes. |
| */ |
| void normalize(); |
| }; |