| 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 #ifndef GOOGLE_APIS_DRIVE_GDATA_WAPI_PARSER_H_ | 5 #ifndef GOOGLE_APIS_DRIVE_GDATA_WAPI_PARSER_H_ |
| 6 #define GOOGLE_APIS_DRIVE_GDATA_WAPI_PARSER_H_ | 6 #define GOOGLE_APIS_DRIVE_GDATA_WAPI_PARSER_H_ |
| 7 | 7 |
| 8 #include <string> | 8 #include <string> |
| 9 #include <utility> | 9 #include <utility> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 400 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 411 int64 image_rotation() const { return image_rotation_; } | 411 int64 image_rotation() const { return image_rotation_; } |
| 412 | 412 |
| 413 // The time of this modification. | 413 // The time of this modification. |
| 414 // Note: This property is filled only when converted from ChangeResource. | 414 // Note: This property is filled only when converted from ChangeResource. |
| 415 const base::Time& modification_date() const { return modification_date_; } | 415 const base::Time& modification_date() const { return modification_date_; } |
| 416 | 416 |
| 417 // Text version of resource entry kind. Returns an empty string for | 417 // Text version of resource entry kind. Returns an empty string for |
| 418 // unknown entry kind. | 418 // unknown entry kind. |
| 419 std::string GetEntryKindText() const; | 419 std::string GetEntryKindText() const; |
| 420 | 420 |
| 421 // Returns preferred file extension for hosted documents. If entry is not | |
| 422 // a hosted document, this call returns an empty string. | |
| 423 static std::string GetHostedDocumentExtension(DriveEntryKind kind); | |
| 424 | |
| 425 // True if resource entry is remotely hosted. | 421 // True if resource entry is remotely hosted. |
| 426 bool is_hosted_document() const { | 422 bool is_hosted_document() const { |
| 427 return (ClassifyEntryKind(kind_) & KIND_OF_HOSTED_DOCUMENT) > 0; | 423 return (ClassifyEntryKind(kind_) & KIND_OF_HOSTED_DOCUMENT) > 0; |
| 428 } | 424 } |
| 429 // True if resource entry hosted by Google Documents. | 425 // True if resource entry hosted by Google Documents. |
| 430 bool is_google_document() const { | 426 bool is_google_document() const { |
| 431 return (ClassifyEntryKind(kind_) & KIND_OF_GOOGLE_DOCUMENT) > 0; | 427 return (ClassifyEntryKind(kind_) & KIND_OF_GOOGLE_DOCUMENT) > 0; |
| 432 } | 428 } |
| 433 // True if resource entry is hosted by an external application. | 429 // True if resource entry is hosted by an external application. |
| 434 bool is_external_document() const { | 430 bool is_external_document() const { |
| 435 return (ClassifyEntryKind(kind_) & KIND_OF_EXTERNAL_DOCUMENT) > 0; | 431 return (ClassifyEntryKind(kind_) & KIND_OF_EXTERNAL_DOCUMENT) > 0; |
| 436 } | 432 } |
| 437 // True if resource entry is a folder (collection). | 433 // True if resource entry is a folder (collection). |
| 438 bool is_folder() const { | 434 bool is_folder() const { |
| 439 return (ClassifyEntryKind(kind_) & KIND_OF_FOLDER) > 0; | 435 return (ClassifyEntryKind(kind_) & KIND_OF_FOLDER) > 0; |
| 440 } | 436 } |
| 441 // True if resource entry is regular file. | 437 // True if resource entry is regular file. |
| 442 bool is_file() const { | 438 bool is_file() const { |
| 443 return (ClassifyEntryKind(kind_) & KIND_OF_FILE) > 0; | 439 return (ClassifyEntryKind(kind_) & KIND_OF_FILE) > 0; |
| 444 } | 440 } |
| 445 // True if resource entry can't be mapped to the file system. | |
| 446 bool is_special() const { | |
| 447 return !is_file() && !is_folder() && !is_hosted_document(); | |
| 448 } | |
| 449 | |
| 450 // The following constructs are exposed for unit tests. | |
| 451 | |
| 452 // Classes of EntryKind. Used for ClassifyEntryKind(). | |
| 453 enum EntryKindClass { | |
| 454 KIND_OF_NONE = 0, | |
| 455 KIND_OF_HOSTED_DOCUMENT = 1, | |
| 456 KIND_OF_GOOGLE_DOCUMENT = 1 << 1, | |
| 457 KIND_OF_EXTERNAL_DOCUMENT = 1 << 2, | |
| 458 KIND_OF_FOLDER = 1 << 3, | |
| 459 KIND_OF_FILE = 1 << 4, | |
| 460 }; | |
| 461 | |
| 462 // Returns the kind enum corresponding to the extension in form ".xxx". | |
| 463 static DriveEntryKind GetEntryKindFromExtension(const std::string& extension); | |
| 464 | |
| 465 // Classifies the EntryKind. The returned value is a bitmask of | |
| 466 // EntryKindClass. For example, DOCUMENT is classified as | |
| 467 // KIND_OF_HOSTED_DOCUMENT and KIND_OF_GOOGLE_DOCUMENT, hence the returned | |
| 468 // value is KIND_OF_HOSTED_DOCUMENT | KIND_OF_GOOGLE_DOCUMENT. | |
| 469 static int ClassifyEntryKind(DriveEntryKind kind); | |
| 470 | |
| 471 // Classifies the EntryKind by the file extension of specific path. The | |
| 472 // returned value is a bitmask of EntryKindClass. See also ClassifyEntryKind. | |
| 473 static int ClassifyEntryKindByFileExtension(const base::FilePath& file); | |
| 474 | 441 |
| 475 void set_resource_id(const std::string& resource_id) { | 442 void set_resource_id(const std::string& resource_id) { |
| 476 resource_id_ = resource_id; | 443 resource_id_ = resource_id; |
| 477 } | 444 } |
| 478 void set_id(const std::string& id) { id_ = id; } | 445 void set_id(const std::string& id) { id_ = id; } |
| 479 void set_kind(DriveEntryKind kind) { kind_ = kind; } | 446 void set_kind(DriveEntryKind kind) { kind_ = kind; } |
| 480 void set_title(const std::string& title) { title_ = title; } | 447 void set_title(const std::string& title) { title_ = title; } |
| 481 void set_published_time(const base::Time& published_time) { | 448 void set_published_time(const base::Time& published_time) { |
| 482 published_time_ = published_time; | 449 published_time_ = published_time; |
| 483 } | 450 } |
| (...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 636 int items_per_page_; | 603 int items_per_page_; |
| 637 std::string title_; | 604 std::string title_; |
| 638 int64 largest_changestamp_; | 605 int64 largest_changestamp_; |
| 639 | 606 |
| 640 DISALLOW_COPY_AND_ASSIGN(ResourceList); | 607 DISALLOW_COPY_AND_ASSIGN(ResourceList); |
| 641 }; | 608 }; |
| 642 | 609 |
| 643 } // namespace google_apis | 610 } // namespace google_apis |
| 644 | 611 |
| 645 #endif // GOOGLE_APIS_DRIVE_GDATA_WAPI_PARSER_H_ | 612 #endif // GOOGLE_APIS_DRIVE_GDATA_WAPI_PARSER_H_ |
| OLD | NEW |