Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1101)

Unified Diff: chrome/browser/chromeos/gdata/gdata_wapi_parser.cc

Issue 10837201: Pass parsed ChangeList to GDataFileSystem. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 8 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/chromeos/gdata/gdata_wapi_parser.cc
diff --git a/chrome/browser/chromeos/gdata/gdata_wapi_parser.cc b/chrome/browser/chromeos/gdata/gdata_wapi_parser.cc
index 909f96dede7d1120f904f4b93912012985201910..9007276c4bae943877b1494a9dbc981dc6155d6b 100644
--- a/chrome/browser/chromeos/gdata/gdata_wapi_parser.cc
+++ b/chrome/browser/chromeos/gdata/gdata_wapi_parser.cc
@@ -15,6 +15,7 @@
#include "base/string_util.h"
#include "base/utf_string_conversions.h"
#include "base/values.h"
+#include "chrome/browser/chromeos/gdata/drive_api_parser.h"
#include "chrome/browser/chromeos/gdata/gdata_util.h"
#include "third_party/libxml/chromium/libxml_utils.h"
@@ -804,6 +805,83 @@ DocumentEntry* DocumentEntry::CreateFromXml(XmlReader* xml_reader) {
}
// static
+DocumentEntry* DocumentEntry::CreateFromFileResource(const FileResource& file) {
+ scoped_ptr<DocumentEntry> entry(new DocumentEntry());
+
+ // DocumentEntry
+ entry->resource_id_ = file.file_id();
+ entry->id_ = file.file_id();
+ entry->kind_ = file.GetKind();
+ entry->title_ = UTF8ToUTF16(file.title());
+ entry->published_time_ = file.created_date();
+ // TODO(kochi): entry->labels_
+ entry->content_.url_ = file.web_content_link();
+ entry->content_.mime_type_ = file.mime_type();
+ // TODO(kochi): entry->feed_links_
+
+ // For file entries
+ entry->filename_ = UTF8ToUTF16(file.title());
+ entry->suggested_filename_ = UTF8ToUTF16(file.title());
+ entry->file_md5_ = file.md5_checksum();
+ entry->file_size_ = file.file_size();
+
+ entry->deleted_ = false; // later filled by CreateFromChangeResource.
+ entry->removed_ = false; // later filled by CreateFromChangeResource.
+
+ // FeedEntry
+ entry->etag_ = file.etag();
+ // entry->authors_
+ // entry->links_.
+ if (!file.parents().empty()) {
+ Link* link = new Link();
+ link->type_ = Link::PARENT;
+ link->href_ = file.parents()[0]->parent_link();
+ entry->links_.push_back(link);
+ }
+ if (!file.self_link().is_empty()) {
+ Link* link = new Link();
+ link->type_ = Link::EDIT;
+ link->href_ = file.self_link();
+ entry->links_.push_back(link);
+ }
+ if (!file.thumbnail_link().is_empty()) {
+ Link* link = new Link();
+ link->type_ = Link::THUMBNAIL;
+ link->href_ = file.thumbnail_link();
+ entry->links_.push_back(link);
+ }
+ if (!file.alternate_link().is_empty()) {
+ Link* link = new Link();
+ link->type_ = Link::ALTERNATE;
+ link->href_ = file.alternate_link();
+ entry->links_.push_back(link);
+ }
+ if (!file.embed_link().is_empty()) {
+ Link* link = new Link();
+ link->type_ = Link::EMBED;
+ link->href_ = file.embed_link();
+ entry->links_.push_back(link);
+ }
+ // entry->categories_
+ entry->updated_time_ = file.modified_by_me_date();
+
+ // TODO: Do we need this?
+ entry->FillRemainingFields();
+ return entry.release();
+}
+
+// static
+DocumentEntry*
+DocumentEntry::CreateFromChangeResource(const ChangeResource& change) {
+ DocumentEntry* entry = CreateFromFileResource(change.file());
+
+ entry->deleted_ = change.is_deleted();
+ entry->removed_ = change.is_deleted();
+
+ return entry;
+}
+
+// static
std::string DocumentEntry::GetEntryNodeName() {
return kEntryNode;
}
@@ -878,6 +956,35 @@ scoped_ptr<DocumentFeed> DocumentFeed::CreateFrom(const base::Value& value) {
return feed.Pass();
}
+// static
+scoped_ptr<DocumentFeed> DocumentFeed::CreateFromFileList(
satorux1 2012/08/10 18:14:34 This doesn't seem to be used.
kochi 2012/08/13 09:08:39 Removed.
+ const FileList& filelist) {
+ scoped_ptr<DocumentFeed> feed(new DocumentFeed());
+ ScopedVector<FileResource>::const_iterator iter = filelist.items().begin();
+ while (iter != filelist.items().end()) {
+ feed->entries_.push_back(DocumentEntry::CreateFromFileResource(**iter));
+ ++iter;
+ }
+ return feed.Pass();
+}
+
+// static
+scoped_ptr<DocumentFeed> DocumentFeed::CreateFromChangeList(
+ const ChangeList& changelist) {
+ scoped_ptr<DocumentFeed> feed(new DocumentFeed());
+ int64 largest_changestamp = 0;
+ ScopedVector<ChangeResource>::const_iterator iter =
+ changelist.items().begin();
+ while (iter != changelist.items().end()) {
+ const FileResource& file = (*iter)->file();
+ largest_changestamp = std::max(largest_changestamp, (*iter)->change_id());
+ feed->entries_.push_back(DocumentEntry::CreateFromFileResource(file));
+ ++iter;
+ }
+ feed->largest_changestamp_ = largest_changestamp;
+ return feed.Pass();
+}
+
bool DocumentFeed::GetNextFeedURL(GURL* url) {
DCHECK(url);
for (size_t i = 0; i < links_.size(); ++i) {

Powered by Google App Engine
This is Rietveld 408576698