File: lib/storageAdapter/storageAdapter.js
- // Copyright 2014, Yahoo! Inc.
- // Copyrights licensed under the Mit License. See the accompanying LICENSE file for terms.
-
- var Base = require('preceptor-core').Base;
- var Promise = require('promise');
-
- /**
- * Abstract storage adapter
- *
- * @class StorageAdapter
- * @property {object} _options
- * @property {string} _build
- * @property {Promise} _promise
- */
- var StorageAdapter = Base.extend(
-
- /**
- * Storage adapter constructor
- *
- * @constructor
- * @param {string} build Identifier of build
- * @param {object} [options]
- */
- function (build, options) {
- this.__super();
-
- this._build = build;
- this._options = options || {};
- this.setPromise(Promise.resolve());
-
- this.initialize();
- },
-
- /** @lends StorageAdapter.prototype */
- {
- /**
- * Initializes the source-adapter
- *
- * @method initialize
- */
- initialize: function () {
- // Nothing by default
- },
-
- /**
- * Gets the source-adapter promise
- *
- * @method getPromise
- * @return {Promise}
- */
- getPromise: function () {
- return this._promise;
- },
-
- /**
- * Sets the promise
- *
- * @method setPromise
- * @param {Promise} promise
- */
- setPromise: function (promise) {
- this._promise = promise;
- },
-
-
- /**
- * Gets the build information
- *
- * @returns {string}
- */
- getBuild: function () {
- return this._build;
- },
-
- /**
- * Sets the build information
- *
- * @method setBuild
- * @param {string} build
- */
- setBuild: function (build) {
- this._build = build;
- },
-
- /**
- * Gets a list of currently approve screen names
- *
- * @method getCurrentApprovedScreenNames
- * @return {Promise} With {string[]} List of approved screen names
- */
- getCurrentApprovedScreenNames: function () {
- throw new Error('Unimplemented adapter function "getCurrentApprovedScreenNames".');
- },
-
- /**
- * Gets a specific currently approved screen
- *
- * @method getCurrentApprovedScreen
- * @param {string} name Name of approved screen
- * @return {Promise} With {PNGImage} Approved screen
- */
- getCurrentApprovedScreen: function (name) {
- throw new Error('Unimplemented adapter function "getCurrentApprovedScreen".');
- },
-
- /**
- * Archives a specific currently approved screen
- *
- * @method archiveCurrentApprovedScreen
- * @param {string} name Name of approved screen
- * @param {PNGImage} image Screen to archive
- * @return {Promise}
- */
- archiveCurrentApprovedScreen: function (name, image) {
- throw new Error('Unimplemented adapter function "archiveCurrentApprovedScreen".');
- },
-
-
- /**
- * Gets a list of approve screen names
- *
- * @method getApprovedScreenNames
- * @return {Promise} With {string[]} List of approved screen names
- */
- getApprovedScreenNames: function () {
- throw new Error('Unimplemented adapter function "getApprovedScreenNames".');
- },
-
- /**
- * Gets a specific approved screen
- *
- * @method getApprovedScreen
- * @param {string} name Name of approved screen
- * @return {Promise} With {PNGImage} Approved screen
- */
- getApprovedScreen: function (name) {
- throw new Error('Unimplemented adapter function "getApprovedScreen".');
- },
-
- /**
- * Archives a specific approved screen
- *
- * @method archiveApprovedScreen
- * @param {string} name Name of approved screen
- * @param {PNGImage} image Screen to archive
- * @return {Promise}
- */
- archiveApprovedScreen: function (name, image) {
- throw new Error('Unimplemented adapter function "archiveApprovedScreen".');
- },
-
-
- /**
- * Gets a list of build screen names
- *
- * @method getBuildScreenNames
- * @return {Promise} With {string[]} List of build screen names
- */
- getBuildScreenNames: function () {
- throw new Error('Unimplemented adapter function "getBuildScreenNames".');
- },
-
- /**
- * Gets a specific build screen
- *
- * @method getBuildScreen
- * @param {string} name Name of build screen
- * @return {Promise} With {PNGImage}
- */
- getBuildScreen: function (name) {
- throw new Error('Unimplemented adapter function "getBuildScreen".');
- },
-
- /**
- * Archives a specific build screen
- *
- * @method archiveBuildScreen
- * @param {string} name Name of build screen
- * @param {PNGImage} image Screen to archive
- * @return {Promise}
- */
- archiveBuildScreen: function (name, image) {
- throw new Error('Unimplemented adapter function "archiveBuildScreen".');
- },
-
-
- /**
- * Gets a list of build highlight names
- *
- * @method getHighlightScreenNames
- * @return {Promise} With {string[]} List of build screen names
- */
- getHighlightScreenNames: function () {
- throw new Error('Unimplemented adapter function "getHighlightScreenNames".');
- },
-
- /**
- * Gets a specific highlight screen
- *
- * @method getHighlightScreen
- * @param {string} name Name of build screen
- * @return {Promise} With {PNGImage} Build screen
- */
- getHighlightScreen: function (name) {
- throw new Error('Unimplemented adapter function "getHighlightScreen".');
- },
-
- /**
- * Archives a specific highlight screen
- *
- * @method archiveHighlightScreen
- * @param {string} name Name of highlight screen
- * @param {PNGImage} image Screen to archive
- */
- archiveHighlightScreen: function (name, image) {
- throw new Error('Unimplemented adapter function "archiveHighlightScreen".');
- }
- },
-
- {
- /**
- * Type of class
- *
- * @property TYPE
- * @type string
- */
- TYPE: 'StorageAdapter'
- });
-
- module.exports = StorageAdapter;
-
-