/**
* @fileoverview Exposed data type for use outside of DsClient.
* All properties should be exposed to allow use from uncompiled
* code.
*
* @author anders.rejdebrant@spark-vision.com (Anders Rejdebrant)
*/
goog.provide('spv.ds.Suggestion');
/**
* Represents one configuration change suggestion.
* Suggestions are generated when the configurator logic engine finds relevant
* alternatives to the requested goal state.
* This object is instantiated by DsClient and should not be constructed by
* caller code.
*
* @export
* @struct
* @constructor
* @param {Array.<spv.ds.MenuItem>} items_to_add
* @param {Array.<spv.ds.MenuItem>} items_to_remove
* @param {Array.<string>} internal_data
*/
spv.ds.Suggestion = function(
items_to_add,
items_to_remove,
internal_data)
{
/**
* Items in this array will be added to the configuration if this
* suggestion is activated on the related configuration.
*
* This member can safely be inspected and used by GUI code.
*
* @type {Array.<spv.ds.MenuItem>}
* @nocollapse
*/
this.items_to_add = items_to_add;
/**
* Items in this array will be removed from the configuration if this
* suggestion is activated on the related configuration.
*
* This member can safely be inspected and used by GUI code.
*
* @type {Array.<spv.ds.MenuItem>}
* @nocollapse
*/
this.items_to_remove = items_to_remove;
/**
* This is the data needed by the current implementation and it is expected
* to change in type and content over time as the suggestion capabilities
* improve. Caller code of DsClient should not inspect or modify this
* member.
*
* Only the internals of spv.ds.DsClient should use this member.
*
* @type {Array.<string>}
*/
this.internal_data = internal_data;
};