baja/comp/Struct.js

/**
 * @copyright 2015 Tridium, Inc. All Rights Reserved.
 * @author Gareth Johnson
 */

/**
 * Defines {@link baja.Struct}.
 * @module baja/comp/Struct
 */
define([ "bajaScript/sys",
        "bajaScript/baja/comp/Complex" ], 
        function (baja, Complex) {
  
  "use strict";
  
  var subclass = baja.subclass,
      callSuper = baja.callSuper;
  
  /**
   * Represents a `baja:Struct` in BajaScript.
   * 
   * `Struct` is the base class for a component which has
   * one or more properties.  `Struct`s must only declare
   * properties which are typed as boolean, int, float,
   * String, Simple, or other `Struct`s.  This means
   * that a `Struct` may never have a `Component` property.
   * `Struct`s only support `Property` slots, never `Action`s or `Topic`s.
   * 
   * A `Struct` can only contain frozen Slots. A frozen Slot is defined
   * at compile time (usually hard coded in Java).
   *
   * @see baja.Component
   * @class
   * @alias baja.Struct
   * @extends baja.Complex
   */
  var Struct = function Struct() {  
    callSuper(Struct, this, arguments); 
  };
  
  subclass(Struct, Complex);
  
  return Struct;
});