OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/chromeos/gdata/drive_api_parser.h" | 5 #include "chrome/browser/chromeos/gdata/drive_api_parser.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
10 #include "base/file_path.h" | 10 #include "base/file_path.h" |
(...skipping 20 matching lines...) Expand all Loading... | |
31 } | 31 } |
32 | 32 |
33 // Drive v2 API JSON names. | 33 // Drive v2 API JSON names. |
34 | 34 |
35 // Common | 35 // Common |
36 const char kKind[] = "kind"; | 36 const char kKind[] = "kind"; |
37 const char kId[] = "id"; | 37 const char kId[] = "id"; |
38 const char kETag[] = "etag"; | 38 const char kETag[] = "etag"; |
39 const char kItems[] = "items"; | 39 const char kItems[] = "items"; |
40 const char kLargestChangeId[] = "largestChangeId"; | 40 const char kLargestChangeId[] = "largestChangeId"; |
41 const char kSelfLink[] = "selfLink"; | |
41 | 42 |
42 // About Resource: | 43 // About Resource: |
43 const char kAboutKind[] = "drive#about"; | 44 const char kAboutKind[] = "drive#about"; |
44 const char kRootFolderId[] = "rootFolderId"; | 45 const char kRootFolderId[] = "rootFolderId"; |
45 const char kQuotaBytesTotal[] = "quotaBytesTotal"; | 46 const char kQuotaBytesTotal[] = "quotaBytesTotal"; |
46 const char kQuotaBytesUsed[] = "quotaBytesUsed"; | 47 const char kQuotaBytesUsed[] = "quotaBytesUsed"; |
47 | 48 |
48 // App Icon: | 49 // App Icon: |
49 const char kCategory[] = "category"; | 50 const char kCategory[] = "category"; |
50 const char kSize[] = "size"; | 51 const char kSize[] = "size"; |
(...skipping 12 matching lines...) Expand all Loading... | |
63 const char kSecondaryMimeTypes[] = "secondaryMimeTypes"; | 64 const char kSecondaryMimeTypes[] = "secondaryMimeTypes"; |
64 const char kPrimaryFileExtensions[] = "primaryFileExtensions"; | 65 const char kPrimaryFileExtensions[] = "primaryFileExtensions"; |
65 const char kSecondaryFileExtensions[] = "secondaryFileExtensions"; | 66 const char kSecondaryFileExtensions[] = "secondaryFileExtensions"; |
66 const char kIcons[] = "icons"; | 67 const char kIcons[] = "icons"; |
67 | 68 |
68 // Apps List: | 69 // Apps List: |
69 const char kAppListKind[] = "drive#appList"; | 70 const char kAppListKind[] = "drive#appList"; |
70 | 71 |
71 // Parent Resource: | 72 // Parent Resource: |
72 const char kParentReferenceKind[] = "drive#parentReference"; | 73 const char kParentReferenceKind[] = "drive#parentReference"; |
74 const char kParentLink[] = "parentLink"; | |
73 const char kIsRoot[] = "isRoot"; | 75 const char kIsRoot[] = "isRoot"; |
74 | 76 |
75 // File Resource: | 77 // File Resource: |
76 const char kFileKind[] = "drive#file"; | 78 const char kFileKind[] = "drive#file"; |
77 const char kMimeType[] = "mimeType"; | 79 const char kMimeType[] = "mimeType"; |
78 const char kTitle[] = "title"; | 80 const char kTitle[] = "title"; |
81 const char kCreatedDate[] = "createdDate"; | |
79 const char kModifiedByMeDate[] = "modifiedByMeDate"; | 82 const char kModifiedByMeDate[] = "modifiedByMeDate"; |
80 const char kParents[] = "parents"; | 83 const char kParents[] = "parents"; |
81 const char kDownloadUrl[] = "downloadUrl"; | 84 const char kDownloadUrl[] = "downloadUrl"; |
82 const char kFileExtension[] = "fileExtension"; | 85 const char kFileExtension[] = "fileExtension"; |
83 const char kMd5Checksum[] = "md5Checksum"; | 86 const char kMd5Checksum[] = "md5Checksum"; |
84 const char kFileSize[] = "fileSize"; | 87 const char kFileSize[] = "fileSize"; |
88 const char kAlternateLink[] = "alternateLink"; | |
hashimoto
2012/08/07 04:19:02
Is there a policy to order these values?
If so, pl
kochi
2012/08/07 05:24:37
Basically this order follows the order in Drive V2
| |
89 const char kEmbedLink[] = "embedLink"; | |
90 const char kThumbnailLink[] = "thumbnailLink"; | |
91 const char kWebContentLink[] = "webContentLink"; | |
92 const char kExplicitlyTrashed[] = "explicitlyTrashed"; | |
hashimoto
2012/08/07 04:19:02
What is this for?
kochi
2012/08/07 05:24:37
Removed.
| |
85 | 93 |
86 const char kDriveFolderMimeType[] = "application/vnd.google-apps.folder"; | 94 const char kDriveFolderMimeType[] = "application/vnd.google-apps.folder"; |
87 | 95 |
88 // Files List: | 96 // Files List: |
89 const char kFileListKind[] = "drive#fileList"; | 97 const char kFileListKind[] = "drive#fileList"; |
90 const char kNextPageToken[] = "nextPageToken"; | 98 const char kNextPageToken[] = "nextPageToken"; |
91 const char kNextLink[] = "nextLink"; | 99 const char kNextLink[] = "nextLink"; |
92 | 100 |
93 // Change Resource: | 101 // Change Resource: |
94 const char kChangeKind[] = "drive#change"; | 102 const char kChangeKind[] = "drive#change"; |
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
312 // ParentReference implementation | 320 // ParentReference implementation |
313 | 321 |
314 ParentReference::ParentReference() : is_root_(false) {} | 322 ParentReference::ParentReference() : is_root_(false) {} |
315 | 323 |
316 ParentReference::~ParentReference() {} | 324 ParentReference::~ParentReference() {} |
317 | 325 |
318 // static | 326 // static |
319 void ParentReference::RegisterJSONConverter( | 327 void ParentReference::RegisterJSONConverter( |
320 base::JSONValueConverter<ParentReference>* converter) { | 328 base::JSONValueConverter<ParentReference>* converter) { |
321 converter->RegisterStringField(kId, &ParentReference::file_id_); | 329 converter->RegisterStringField(kId, &ParentReference::file_id_); |
330 converter->RegisterCustomField<GURL>(kParentLink, | |
331 &ParentReference::parent_link_, | |
332 GetGURLFromString); | |
322 converter->RegisterBoolField(kIsRoot, &ParentReference::is_root_); | 333 converter->RegisterBoolField(kIsRoot, &ParentReference::is_root_); |
323 } | 334 } |
324 | 335 |
325 // static | 336 // static |
326 scoped_ptr<ParentReference> | 337 scoped_ptr<ParentReference> |
327 ParentReference::CreateFrom(const base::Value& value) { | 338 ParentReference::CreateFrom(const base::Value& value) { |
328 scoped_ptr<ParentReference> reference(new ParentReference()); | 339 scoped_ptr<ParentReference> reference(new ParentReference()); |
329 if (!IsResourceKindExpected(value, kParentReferenceKind) || | 340 if (!IsResourceKindExpected(value, kParentReferenceKind) || |
330 !reference->Parse(value)) { | 341 !reference->Parse(value)) { |
331 LOG(ERROR) << "Unable to create: Invalid ParentRefernce JSON!"; | 342 LOG(ERROR) << "Unable to create: Invalid ParentRefernce JSON!"; |
(...skipping 19 matching lines...) Expand all Loading... | |
351 FileResource::~FileResource() {} | 362 FileResource::~FileResource() {} |
352 | 363 |
353 // static | 364 // static |
354 void FileResource::RegisterJSONConverter( | 365 void FileResource::RegisterJSONConverter( |
355 base::JSONValueConverter<FileResource>* converter) { | 366 base::JSONValueConverter<FileResource>* converter) { |
356 converter->RegisterStringField(kId, &FileResource::file_id_); | 367 converter->RegisterStringField(kId, &FileResource::file_id_); |
357 converter->RegisterStringField(kETag, &FileResource::etag_); | 368 converter->RegisterStringField(kETag, &FileResource::etag_); |
358 converter->RegisterStringField(kMimeType, &FileResource::mime_type_); | 369 converter->RegisterStringField(kMimeType, &FileResource::mime_type_); |
359 converter->RegisterStringField(kTitle, &FileResource::title_); | 370 converter->RegisterStringField(kTitle, &FileResource::title_); |
360 converter->RegisterCustomField<base::Time>( | 371 converter->RegisterCustomField<base::Time>( |
372 kCreatedDate, | |
373 &FileResource::created_date_, | |
374 &gdata::util::GetTimeFromString); | |
375 converter->RegisterCustomField<base::Time>( | |
361 kModifiedByMeDate, | 376 kModifiedByMeDate, |
362 &FileResource::modified_by_me_date_, | 377 &FileResource::modified_by_me_date_, |
363 &gdata::util::GetTimeFromString); | 378 &gdata::util::GetTimeFromString); |
364 converter->RegisterRepeatedMessage<ParentReference>(kParents, | 379 converter->RegisterRepeatedMessage<ParentReference>(kParents, |
365 &FileResource::parents_); | 380 &FileResource::parents_); |
366 converter->RegisterCustomField<GURL>(kDownloadUrl, | |
367 &FileResource::download_url_, | |
368 GetGURLFromString); | |
369 converter->RegisterStringField(kFileExtension, | 381 converter->RegisterStringField(kFileExtension, |
370 &FileResource::file_extension_); | 382 &FileResource::file_extension_); |
371 converter->RegisterStringField(kMd5Checksum, &FileResource::md5_checksum_); | 383 converter->RegisterStringField(kMd5Checksum, &FileResource::md5_checksum_); |
372 converter->RegisterCustomField<int64>(kFileSize, | 384 converter->RegisterCustomField<int64>(kFileSize, |
373 &FileResource::file_size_, | 385 &FileResource::file_size_, |
374 &base::StringToInt64); | 386 &base::StringToInt64); |
387 converter->RegisterCustomField<GURL>(kDownloadUrl, | |
388 &FileResource::download_url_, | |
389 GetGURLFromString); | |
390 converter->RegisterCustomField<GURL>(kSelfLink, | |
391 &FileResource::self_link_, | |
392 GetGURLFromString); | |
393 converter->RegisterCustomField<GURL>(kAlternateLink, | |
394 &FileResource::alternate_link_, | |
395 GetGURLFromString); | |
396 converter->RegisterCustomField<GURL>(kEmbedLink, | |
397 &FileResource::embed_link_, | |
398 GetGURLFromString); | |
399 converter->RegisterCustomField<GURL>(kThumbnailLink, | |
400 &FileResource::thumbnail_link_, | |
401 GetGURLFromString); | |
402 converter->RegisterCustomField<GURL>(kWebContentLink, | |
403 &FileResource::web_content_link_, | |
404 GetGURLFromString); | |
375 } | 405 } |
376 | 406 |
377 // static | 407 // static |
378 scoped_ptr<FileResource> FileResource::CreateFrom(const base::Value& value) { | 408 scoped_ptr<FileResource> FileResource::CreateFrom(const base::Value& value) { |
379 scoped_ptr<FileResource> resource(new FileResource()); | 409 scoped_ptr<FileResource> resource(new FileResource()); |
380 if (!IsResourceKindExpected(value, kFileKind) || !resource->Parse(value)) { | 410 if (!IsResourceKindExpected(value, kFileKind) || !resource->Parse(value)) { |
381 LOG(ERROR) << "Unable to create: Invalid FileResource JSON!"; | 411 LOG(ERROR) << "Unable to create: Invalid FileResource JSON!"; |
382 return scoped_ptr<FileResource>(NULL); | 412 return scoped_ptr<FileResource>(NULL); |
383 } | 413 } |
384 return resource.Pass(); | 414 return resource.Pass(); |
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
509 bool ChangeList::Parse(const base::Value& value) { | 539 bool ChangeList::Parse(const base::Value& value) { |
510 base::JSONValueConverter<ChangeList> converter; | 540 base::JSONValueConverter<ChangeList> converter; |
511 if (!converter.Convert(value, this)) { | 541 if (!converter.Convert(value, this)) { |
512 LOG(ERROR) << "Unable to parse: Invalid ChangeList"; | 542 LOG(ERROR) << "Unable to parse: Invalid ChangeList"; |
513 return false; | 543 return false; |
514 } | 544 } |
515 return true; | 545 return true; |
516 } | 546 } |
517 | 547 |
518 } // namespace gdata | 548 } // namespace gdata |
OLD | NEW |