webgme-engine
Version:
WebGME server and Client API without a GUI
254 lines (214 loc) • 10.3 kB
HTML
<html lang="en">
<head>
<meta charset="utf-8">
<title>JSDoc: Source: plugin/PluginResult.js</title>
<script src="scripts/prettify/prettify.js"> </script>
<script src="scripts/prettify/lang-css.js"> </script>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
</head>
<body>
<div id="main">
<h1 class="page-title">Source: plugin/PluginResult.js</h1>
<section>
<article>
<pre class="prettyprint source linenums"><code>/*globals define*/
/*eslint-env node, browser*/
/**
* A module representing a PluginResult.
*
* @author lattmann / https://github.com/lattmann
*/
(function (factory) {
if (typeof define === 'function' && define.amd) {
define(['plugin/PluginMessage', 'plugin/PluginResultBase'], factory);
} else if (typeof module === 'object' && module.exports) {
module.exports = factory(require('./PluginMessage'), require('./PluginResultBase'));
}
}(function (PluginMessage, PluginResultBase) {
'use strict';
/**
* Initializes a new instance of a plugin result object.
*
* Note: this object is JSON serializable see serialize method.
*
* @param config - deserializes an existing configuration to this object.
* @constructor
* @augments PluginResultBase
* @alias PluginResult
*/
var PluginResult = function (config) {
var pluginMessage,
i;
if (config) {
this.success = config.success;
this.pluginName = config.pluginName;
this.pluginId = config.pluginId;
this.startTime = config.startTime;
this.finishTime = config.finishTime;
this.messages = [];
this.artifacts = config.artifacts;
this.error = config.error;
this.commits = config.commits;
this.projectId = config.projectId;
for (i = 0; i < config.messages.length; i += 1) {
if (config.messages[i] instanceof PluginMessage) {
pluginMessage = config.messages[i];
} else {
pluginMessage = new PluginMessage(config.messages[i]);
}
this.messages.push(pluginMessage);
}
} else {
this.success = false;
this.messages = []; // array of PluginMessages
this.artifacts = []; // array of hashes
this.pluginName = 'PluginName N/A';
this.startTime = null;
this.finishTime = null;
this.error = null;
this.projectId = null;
this.pluginId = null;
this.commits = [];
}
};
// Prototypical inheritance from PluginResultBase.
PluginResult.prototype = Object.create(PluginResultBase.prototype);
PluginResult.prototype.constructor = PluginResult;
/**
*
* @param {object} commitData
* @param {string} commitData.commitHash - hash of the commit.
* @param {string} commitData.status - storage.constants./SYNCED/FORKED/MERGED
* @param {string} commitData.branchName - name of branch that got updated with the commitHash.
*/
PluginResult.prototype.addCommit = function (commitData) {
this.commits.push(commitData);
};
//------------------------------------------------------------------------------------------------------------------
//--------------- Methods used by the plugin manager
/**
* Sets the name of the plugin to which the result object belongs to.
*
* @param {string} pluginName - name of the plugin
*/
PluginResult.prototype.setPluginName = function (pluginName) {
this.pluginName = pluginName;
};
/**
* Sets the name of the plugin to which the result object belongs to.
*
* @param {string} pluginName - name of the plugin
*/
PluginResult.prototype.setPluginId = function (pluginId) {
this.pluginId = pluginId;
};
/**
* Sets the name of the projectId the result was generated from.
*
* @param {string} projectId - id of the project
*/
PluginResult.prototype.setProjectId = function (projectId) {
this.projectId = projectId;
};
/**
* Gets the ISO 8601 representation of the time when the plugin started its execution.
*
* @returns {string}
*/
PluginResult.prototype.getStartTime = function () {
return this.startTime;
};
/**
* Sets the ISO 8601 representation of the time when the plugin started its execution.
*
* @param {string} time
*/
PluginResult.prototype.setStartTime = function (time) {
this.startTime = time;
};
/**
* Gets the ISO 8601 representation of the time when the plugin finished its execution.
*
* @returns {string}
*/
PluginResult.prototype.getFinishTime = function () {
return this.finishTime;
};
/**
* Sets the ISO 8601 representation of the time when the plugin finished its execution.
*
* @param {string} time
*/
PluginResult.prototype.setFinishTime = function (time) {
this.finishTime = time;
};
/**
* Gets error if any error occured during execution.
* FIXME: should this be an Error object?
* @returns {string}
*/
PluginResult.prototype.getError = function () {
return this.error;
};
/**
* Sets the error string if any error occured during execution.
* FIXME: should this be an Error object?
* @param {string} time
*/
PluginResult.prototype.setError = function (error) {
if (this.error) {
// Do not overwrite user defined error.
return;
}
if (error instanceof Error) {
this.error = error.message;
} else {
this.error = error;
}
};
/**
* Serializes this object to a JSON representation.
*
* @returns {{success: boolean, messages: plugin.PluginMessage[], pluginName: string, finishTime: stirng}}
*/
PluginResult.prototype.serialize = function () {
var result = {
success: this.success,
projectId: this.projectId,
messages: [],
commits: this.commits,
artifacts: this.artifacts,
pluginName: this.pluginName,
pluginId: this.pluginId,
startTime: this.startTime,
finishTime: this.finishTime,
error: this.error
},
i;
for (i = 0; i < this.messages.length; i += 1) {
result.messages.push(this.messages[i].serialize());
}
return result;
};
return PluginResult;
}));
</code></pre>
</article>
</section>
</div>
<nav>
<h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="Server_GMEAuth.html">Server:GMEAuth</a></li><li><a href="Server_SafeStorage.html">Server:SafeStorage</a></li><li><a href="Server_UserProject.html">Server:UserProject</a></li><li><a href="module-Core.html">Core</a></li><li><a href="module-Storage.html">Storage</a></li><li><a href="module-crosscuts.html">crosscuts</a></li><li><a href="module-serialization.html">serialization</a></li></ul><h3>Externals</h3><ul><li><a href="external-Promise.html">Promise</a></li></ul><h3>Classes</h3><ul><li><a href="AddOnBase.html">AddOnBase</a></li><li><a href="AddOnUpdateResult.html">AddOnUpdateResult</a></li><li><a href="Artifact.html">Artifact</a></li><li><a href="BlobClient.html">BlobClient</a></li><li><a href="BlobMetadata.html">BlobMetadata</a></li><li><a href="BlobRunPluginClient.html">BlobRunPluginClient</a></li><li><a href="Client.html">Client</a></li><li><a href="Core.html">Core</a></li><li><a href="ExecutorClient.html">ExecutorClient</a></li><li><a href="GMENode.html">GMENode</a></li><li><a href="GmeLogger.html">GmeLogger</a></li><li><a href="InterPluginResult.html">InterPluginResult</a></li><li><a href="JobInfo.html">JobInfo</a></li><li><a href="OutputInfo.html">OutputInfo</a></li><li><a href="PluginBase.html">PluginBase</a></li><li><a href="PluginConfig.html">PluginConfig</a></li><li><a href="PluginMessage.html">PluginMessage</a></li><li><a href="PluginNodeDescription.html">PluginNodeDescription</a></li><li><a href="PluginResult.html">PluginResult</a></li><li><a href="Project.html">Project</a></li><li><a href="ProjectInterface.html">ProjectInterface</a></li><li><a href="Server_GMEAuth-GMEAuth.html">GMEAuth</a></li><li><a href="Server_SafeStorage-SafeStorage.html">SafeStorage</a></li><li><a href="Server_UserProject-UserProject.html">UserProject</a></li><li><a href="WebsocketRouter.html">WebsocketRouter</a></li><li><a href="WebsocketRouterUser.html">WebsocketRouterUser</a></li></ul><h3>Events</h3><ul><li><a href="Client.html#event:BRANCH_CHANGED">BRANCH_CHANGED</a></li><li><a href="Client.html#event:BRANCH_CLOSED">BRANCH_CLOSED</a></li><li><a href="Client.html#event:BRANCH_OPENED">BRANCH_OPENED</a></li><li><a href="Client.html#event:BRANCH_STATUS_CHANGED">BRANCH_STATUS_CHANGED</a></li><li><a href="Client.html#event:CONNECTED_USERS_CHANGED">CONNECTED_USERS_CHANGED</a></li><li><a href="Client.html#event:NETWORK_STATUS_CHANGED">NETWORK_STATUS_CHANGED</a></li><li><a href="Client.html#event:NOTIFICATION">NOTIFICATION</a></li><li><a href="Client.html#event:PLUGIN_FINISHED">PLUGIN_FINISHED</a></li><li><a href="Client.html#event:PLUGIN_INITIATED">PLUGIN_INITIATED</a></li><li><a href="Client.html#event:PLUGIN_NOTIFICATION">PLUGIN_NOTIFICATION</a></li><li><a href="Client.html#event:PROJECT_CLOSED">PROJECT_CLOSED</a></li><li><a href="Client.html#event:PROJECT_OPENED">PROJECT_OPENED</a></li></ul><h3><a href="global.html">Global</a></h3>
</nav>
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.2</a> on Fri Jun 21 2024 09:43:40 GMT-0400 (Eastern Daylight Time)
</footer>
<script> prettyPrint(); </script>
<script src="scripts/linenumber.js"> </script>
</body>
</html>