Index: ui/file_manager/file_manager/foreground/js/metadata/metadata_cache_item.js |
diff --git a/ui/file_manager/file_manager/foreground/js/metadata/metadata_cache_item.js b/ui/file_manager/file_manager/foreground/js/metadata/metadata_cache_item.js |
index 925941429246723e0e79762c43259ae300cf0721..5f39497756eadcef51946d8bcd8526139f45a2ec 100644 |
--- a/ui/file_manager/file_manager/foreground/js/metadata/metadata_cache_item.js |
+++ b/ui/file_manager/file_manager/foreground/js/metadata/metadata_cache_item.js |
@@ -99,6 +99,38 @@ MetadataCacheItem.prototype.get = function(names) { |
}; |
/** |
+ * Creates deep copy of the item. |
+ * @return {!MetadataCacheItem} |
+ */ |
+MetadataCacheItem.prototype.clone = function() { |
+ var clonedItem = new MetadataCacheItem(); |
+ for (var name in this.properties_) { |
+ var property = this.properties_[name]; |
+ clonedItem.properties_[name] = new MetadataCacheItemProperty(); |
+ clonedItem.properties_[name].value = property.value; |
+ clonedItem.properties_[name].requestId = property.requestId; |
+ clonedItem.properties_[name].state = property.state; |
+ } |
+ return clonedItem; |
+}; |
+ |
+/** |
+ * Returns whether all the given properties are fulfilled. |
+ * @param {!Array<string>} names Property names. |
+ * @return {boolean} |
+ */ |
+MetadataCacheItem.prototype.hasFreshCache = function(names) { |
+ for (var i = 0; i < names.length; i++) { |
+ if (!(this.properties_[names[i]] && |
+ this.properties_[names[i]].state === |
+ MetadataCacheItemPropertyState.FULFILLED)) { |
+ return false; |
+ } |
+ } |
+ return true; |
+}; |
+ |
+/** |
* @enum {string} |
*/ |
var MetadataCacheItemPropertyState = { |