Source: src/js/models/formats/ObjectFormat.js

"use strict";

define(["jquery", "underscore", "backbone"], function ($, _, Backbone) {
  /**
   * @class ObjectFormat
   * @classdesc An ObjectFormat represents a V2 DataONE object format
   * See https://purl.dataone.org/architecture/apis/Types2.html#v2_0.Types.ObjectFormat
   * @classcategory Models/Formats
   * @extends Backbone.Model
   */
  var ObjectFormat = Backbone.Model.extend(
    /** @lends ObjectFormat.prototype */ {
      /* The default object format fields */
      defaults: function () {
        return {
          formatId: null,
          formatName: null,
          formatType: null,
          mediaType: null,
          extension: null,
        };
      },

      /* Constructs a new instance */
      initialize: function (attrs, options) {},

      /*
       * The constructed URL of the model
       * (/cn/v2/formats/{formatId})
       */
      url: function () {
        if (!this.get("formatId")) return "";

        return (
          MetacatUI.appModel.get("formatsServiceUrl") +
          encodeURIComponent(this.get("formatId"))
        );
      },

      /* No op - Formats are read only */
      save: function () {
        return false;
      },
    },
  );

  return ObjectFormat;
});