Home Reference Source Repository

js/Models/Job.js

import BaseModel from './BaseModel';
import InputPortTypeCollection from 'js/Collections/InputPortTypeCollection';
import OutputPortTypeCollection from 'js/Collections/OutputPortTypeCollection';

/**
 * Job.
 */
export default class Job extends BaseModel
{
///////////////////////////////////////////////////////////////////////////////////////
// PUBLIC METHODS
///////////////////////////////////////////////////////////////////////////////////////
    /**
     * Initializes the model. Upon initialization the 'input_port_types' and 'output_port_types' will be set as Backbone.Collections.
     *
     * @param {object} options Backbone.Model options object; 'options.input_port_types' and 'options.output_port_types' may be given
     */
    initialize(options)
    {
        this.set('input_port_types', new InputPortTypeCollection(options.input_port_types));
        this.set('output_port_types', new OutputPortTypeCollection(options.output_port_types));
    }

    /**
     * Override of Backbone.Model.defaults. Sets 'input_port_types' and 'output_port_types' to null.
     *
     * @todo is this needed?
     * @return {object} default properties
     */ 
    defaults()
    {
        return {input_port_types: null, output_port_types: null};
    }

    /**
     * Override of Backbone.Model.parse. The 'input_port_types' and 'output_port_types' will be set as Backbone.Collections.
     *
     * @param {object} response JSON response from server
     * @return {object} response object
     */
    parse(response)
    {
        response.input_port_types = new InputPortTypeCollection(response.input_port_types);
        response.output_port_types = new OutputPortTypeCollection(response.output_port_types);
        return response;
    }
}
Job.prototype.routeName = 'jobs';