Index: ui/file_manager/file_manager/foreground/js/metadata/metadata_model.js |
diff --git a/ui/file_manager/file_manager/foreground/js/metadata/new_metadata_provider.js b/ui/file_manager/file_manager/foreground/js/metadata/metadata_model.js |
similarity index 76% |
copy from ui/file_manager/file_manager/foreground/js/metadata/new_metadata_provider.js |
copy to ui/file_manager/file_manager/foreground/js/metadata/metadata_model.js |
index 6f63f02622e3fcc6df4b0f36ffbadfb32b17fbe1..bd46fa81fc6642f242da40bea8d4b47050db747c 100644 |
--- a/ui/file_manager/file_manager/foreground/js/metadata/new_metadata_provider.js |
+++ b/ui/file_manager/file_manager/foreground/js/metadata/metadata_model.js |
@@ -3,47 +3,11 @@ |
// found in the LICENSE file. |
/** |
- * TODO(hirono): Remove 'New' from the name after removing old MetadataProvider. |
- * @param {!Array<string>} validPropertyNames |
- * @constructor |
- * @struct |
- */ |
-function NewMetadataProvider(validPropertyNames) { |
- /** |
- * Set of valid property names. Key is the name of property and value is |
- * always true. |
- * @private {!Object<string, boolean>} |
- * @const |
- */ |
- this.validPropertyNames_ = {}; |
- for (var i = 0; i < validPropertyNames.length; i++) { |
- this.validPropertyNames_[validPropertyNames[i]] = true; |
- } |
-} |
- |
-NewMetadataProvider.prototype.checkPropertyNames = function(names) { |
- // Check if the property name is correct or not. |
- for (var i = 0; i < names.length; i++) { |
- assert(this.validPropertyNames_[names[i]]); |
- } |
-}; |
- |
-/** |
- * Obtains the metadata for the request. |
- * @param {!Array<!MetadataRequest>} requests |
- * @return {!Promise<!Array<!MetadataItem>>} Promise with obtained metadata. It |
- * should not return rejected promise. Instead it should return undefined |
- * property for property error, and should return empty MetadataItem for |
- * entry error. |
- */ |
-NewMetadataProvider.prototype.get; |
- |
-/** |
* @param {!NewMetadataProvider} rawProvider |
* @constructor |
* @struct |
*/ |
-function CachedMetadataProvider(rawProvider) { |
+function MetadataModel(rawProvider) { |
/** |
* @private {!NewMetadataProvider} |
* @const |
@@ -64,9 +28,22 @@ function CachedMetadataProvider(rawProvider) { |
} |
/** |
+ * @param {!VolumeManagerCommon.VolumeInfoProvider} volumeManager |
+ * @return {!MetadataModel} |
+ */ |
+MetadataModel.create = function(volumeManager) { |
+ return new MetadataModel( |
+ new MultiMetadataProvider( |
+ new FileSystemMetadataProvider(), |
+ new ExternalMetadataProvider(), |
+ new ContentMetadataProvider(), |
+ volumeManager)); |
+}; |
+ |
+/** |
* @return {!NewMetadataProvider} |
*/ |
-CachedMetadataProvider.prototype.getRawProvider = function() { |
+MetadataModel.prototype.getProvider = function() { |
return this.rawProvider_; |
}; |
@@ -76,7 +53,7 @@ CachedMetadataProvider.prototype.getRawProvider = function() { |
* @param {!Array<string>} names Metadata property names to be obtained. |
* @return {!Promise<!Array<!MetadataItem>>} |
*/ |
-CachedMetadataProvider.prototype.get = function(entries, names) { |
+MetadataModel.prototype.get = function(entries, names) { |
this.rawProvider_.checkPropertyNames(names); |
// Check if the results are cached or not. |
@@ -138,7 +115,7 @@ CachedMetadataProvider.prototype.get = function(entries, names) { |
* @param {!Array<string>} names Metadata property names to be obtained. |
* @return {!Array<!MetadataItem>} |
*/ |
-CachedMetadataProvider.prototype.getCache = function(entries, names) { |
+MetadataModel.prototype.getCache = function(entries, names) { |
// Check if the property name is correct or not. |
this.rawProvider_.checkPropertyNames(names); |
return this.cache_.get(entries, names); |
@@ -148,7 +125,7 @@ CachedMetadataProvider.prototype.getCache = function(entries, names) { |
* Clears old metadata for newly created entries. |
* @param {!Array<!Entry>} entries |
*/ |
-CachedMetadataProvider.prototype.notifyEntriesCreated = function(entries) { |
+MetadataModel.prototype.notifyEntriesCreated = function(entries) { |
this.cache_.clear(util.entriesToURLs(entries)); |
}; |
@@ -157,7 +134,7 @@ CachedMetadataProvider.prototype.notifyEntriesCreated = function(entries) { |
* @param {!Array<string>} urls Note it is not an entry list because we cannot |
* obtain entries after removing them from the file system. |
*/ |
-CachedMetadataProvider.prototype.notifyEntriesRemoved = function(urls) { |
+MetadataModel.prototype.notifyEntriesRemoved = function(urls) { |
this.cache_.clear(urls); |
}; |
@@ -165,14 +142,14 @@ CachedMetadataProvider.prototype.notifyEntriesRemoved = function(urls) { |
* Invalidates metadata for updated entries. |
* @param {!Array<!Entry>} entries |
*/ |
-CachedMetadataProvider.prototype.notifyEntriesChanged = function(entries) { |
+MetadataModel.prototype.notifyEntriesChanged = function(entries) { |
this.cache_.invalidate(this.cache_.generateRequestId(), entries); |
}; |
/** |
* Clears all cache. |
*/ |
-CachedMetadataProvider.prototype.clearAllCache = function() { |
+MetadataModel.prototype.clearAllCache = function() { |
this.cache_.clearAll(); |
}; |
@@ -181,7 +158,7 @@ CachedMetadataProvider.prototype.clearAllCache = function() { |
* @param {string} type |
* @param {function(Event):undefined} callback |
*/ |
-CachedMetadataProvider.prototype.addEventListener = function(type, callback) { |
+MetadataModel.prototype.addEventListener = function(type, callback) { |
this.cache_.addEventListener(type, callback); |
}; |