~ubuntu-branches/ubuntu/oneiric/weave/oneiric

« back to all changes in this revision

Viewing changes to source/modules/type_records/bookmark.js

  • Committer: Bazaar Package Importer
  • Author(s): Micah Gersten
  • Date: 2010-08-11 00:35:15 UTC
  • mfrom: (3.1.2 sid)
  • Revision ID: james.westby@ubuntu.com-20100811003515-o3jbh826bnd1syjv
Tags: 1.4.3-1ubuntu1
* Add -fshort-wchar to CXXFLAGS to fix FTBFS in Ubuntu
  - update debian/rules 

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/* ***** BEGIN LICENSE BLOCK *****
2
 
 * Version: MPL 1.1/GPL 2.0/LGPL 2.1
3
 
 *
4
 
 * The contents of this file are subject to the Mozilla Public License Version
5
 
 * 1.1 (the "License"); you may not use this file except in compliance with
6
 
 * the License. You may obtain a copy of the License at
7
 
 * http://www.mozilla.org/MPL/
8
 
 *
9
 
 * Software distributed under the License is distributed on an "AS IS" basis,
10
 
 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
11
 
 * for the specific language governing rights and limitations under the
12
 
 * License.
13
 
 *
14
 
 * The Original Code is Weave.
15
 
 *
16
 
 * The Initial Developer of the Original Code is Mozilla.
17
 
 * Portions created by the Initial Developer are Copyright (C) 2008
18
 
 * the Initial Developer. All Rights Reserved.
19
 
 *
20
 
 * Contributor(s):
21
 
 *  Dan Mills <thunder@mozilla.com>
22
 
 *
23
 
 * Alternatively, the contents of this file may be used under the terms of
24
 
 * either the GNU General Public License Version 2 or later (the "GPL"), or
25
 
 * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
26
 
 * in which case the provisions of the GPL or the LGPL are applicable instead
27
 
 * of those above. If you wish to allow use of your version of this file only
28
 
 * under the terms of either the GPL or the LGPL, and not to allow others to
29
 
 * use your version of this file under the terms of the MPL, indicate your
30
 
 * decision by deleting the provisions above and replace them with the notice
31
 
 * and other provisions required by the GPL or the LGPL. If you do not delete
32
 
 * the provisions above, a recipient may use your version of this file under
33
 
 * the terms of any one of the MPL, the GPL or the LGPL.
34
 
 *
35
 
 * ***** END LICENSE BLOCK ***** */
36
 
 
37
 
const EXPORTED_SYMBOLS = ["PlacesItem", "Bookmark", "BookmarkFolder",
38
 
  "BookmarkMicsum", "BookmarkQuery", "Livemark", "BookmarkSeparator"];
39
 
 
40
 
const Cc = Components.classes;
41
 
const Ci = Components.interfaces;
42
 
const Cr = Components.results;
43
 
const Cu = Components.utils;
44
 
 
45
 
Cu.import("resource://weave/util.js");
46
 
Cu.import("resource://weave/base_records/crypto.js");
47
 
 
48
 
function PlacesItem(uri, type) {
49
 
  CryptoWrapper.call(this, uri);
50
 
  this.type = type || "item";
51
 
}
52
 
PlacesItem.prototype = {
53
 
  decrypt: function PlacesItem_decrypt(passphrase) {
54
 
    // Do the normal CryptoWrapper decrypt, but change types before returning
55
 
    let clear = CryptoWrapper.prototype.decrypt.apply(this, arguments);
56
 
 
57
 
    // Convert the abstract places item to the actual object type
58
 
    if (!this.deleted)
59
 
      this.__proto__ = this.getTypeObject(this.type).prototype;
60
 
 
61
 
    return clear;
62
 
  },
63
 
 
64
 
  getTypeObject: function PlacesItem_getTypeObject(type) {
65
 
    switch (type) {
66
 
      case "bookmark":
67
 
        return Bookmark;
68
 
      case "microsummary":
69
 
        return BookmarkMicsum;
70
 
      case "query":
71
 
        return BookmarkQuery;
72
 
      case "folder":
73
 
        return BookmarkFolder;
74
 
      case "livemark":
75
 
        return Livemark;
76
 
      case "separator":
77
 
        return BookmarkSeparator;
78
 
      case "item":
79
 
        return PlacesItem;
80
 
    }
81
 
    throw "Unknown places item object type: " + type;
82
 
  },
83
 
 
84
 
  __proto__: CryptoWrapper.prototype,
85
 
  _logName: "Record.PlacesItem",
86
 
};
87
 
 
88
 
Utils.deferGetSet(PlacesItem, "cleartext", ["hasDupe", "parentid", "parentName",
89
 
  "predecessorid", "type"]);
90
 
 
91
 
function Bookmark(uri, type) {
92
 
  PlacesItem.call(this, uri, type || "bookmark");
93
 
}
94
 
Bookmark.prototype = {
95
 
  __proto__: PlacesItem.prototype,
96
 
  _logName: "Record.Bookmark",
97
 
};
98
 
 
99
 
Utils.deferGetSet(Bookmark, "cleartext", ["title", "bmkUri", "description",
100
 
  "loadInSidebar", "tags", "keyword"]);
101
 
 
102
 
function BookmarkMicsum(uri) {
103
 
  Bookmark.call(this, uri, "microsummary");
104
 
}
105
 
BookmarkMicsum.prototype = {
106
 
  __proto__: Bookmark.prototype,
107
 
  _logName: "Record.BookmarkMicsum",
108
 
};
109
 
 
110
 
Utils.deferGetSet(BookmarkMicsum, "cleartext", ["generatorUri", "staticTitle"]);
111
 
 
112
 
function BookmarkQuery(uri) {
113
 
  Bookmark.call(this, uri, "query");
114
 
}
115
 
BookmarkQuery.prototype = {
116
 
  __proto__: Bookmark.prototype,
117
 
  _logName: "Record.BookmarkQuery",
118
 
};
119
 
 
120
 
Utils.deferGetSet(BookmarkQuery, "cleartext", ["folderName"]);
121
 
 
122
 
function BookmarkFolder(uri, type) {
123
 
  PlacesItem.call(this, uri, type || "folder");
124
 
}
125
 
BookmarkFolder.prototype = {
126
 
  __proto__: PlacesItem.prototype,
127
 
  _logName: "Record.Folder",
128
 
};
129
 
 
130
 
Utils.deferGetSet(BookmarkFolder, "cleartext", ["description", "title"]);
131
 
 
132
 
function Livemark(uri) {
133
 
  BookmarkFolder.call(this, uri, "livemark");
134
 
}
135
 
Livemark.prototype = {
136
 
  __proto__: BookmarkFolder.prototype,
137
 
  _logName: "Record.Livemark",
138
 
};
139
 
 
140
 
Utils.deferGetSet(Livemark, "cleartext", ["siteUri", "feedUri"]);
141
 
 
142
 
function BookmarkSeparator(uri) {
143
 
  PlacesItem.call(this, uri, "separator");
144
 
}
145
 
BookmarkSeparator.prototype = {
146
 
  __proto__: PlacesItem.prototype,
147
 
  _logName: "Record.Separator",
148
 
};
149
 
 
150
 
Utils.deferGetSet(BookmarkSeparator, "cleartext", "pos");