| Current File : /home/jvzmxxx/wiki1/extensions/Wikibase/view/resources/wikibase/store/store.CachingEntityStore.js |
/**
* @license GPL-2.0+
* @author Adrian Heine <adrian.heine@wikimedia.de>
*/
( function( wb ) {
'use strict';
var MODULE = wb.store;
/**
* An `EntityStore` decorator, adding a cache.
*
* @constructor
* @extends wikibase.store.EntityStore
* @since 0.5
*
* @param {wikibase.store.EntityStore} store
*/
MODULE.CachingEntityStore = util.inherit(
'WbCachingEntityStore',
wb.store.EntityStore,
function( store ) {
this._deferreds = {};
this._store = store;
},
{
/**
* @type {Object}
*/
_deferreds: null,
/**
* @type {wikibase.store.EntityStore}
*/
_store: null,
/**
* @see wikibase.store.EntityStore.get
*/
get: function( entityId ) {
if ( !this._deferreds.hasOwnProperty( entityId ) ) {
this._deferreds[ entityId ] = this._store.get( entityId );
}
return this._deferreds[ entityId ];
}
} );
}( wikibase ) );