baja/comp/User.js

/**
 * @copyright 2024 Tridium, Inc. All Rights Reserved.
 */

/**
 * Defines a BajaScript implementation of `baja:User`
 * API Status: **Private**
 * @module baja/comp/User
 */
define([
  "bajaScript/sys",
  "bajaScript/baja/comp/Component" ], function (
  baja,
  Component) {

  "use strict";

  const Status = baja.Status;

  /**
   * Represents a `baja:User` in BajaScript.
   *
   * @since Niagara 4.15
   * @class
   * @alias module:baja/comp/User
   * @extends baja.Component
   * @private
   */
  return class User extends Component {
    /**
     * Returns the current user of the status
     * @returns {baja.Status}
     */
    getStatus() {
      let bits = 0;

      if (!this.getEnabled()) {
        bits |= Status.DISABLED;
      }

      if (this.getFaultCause()) {
        bits |= Status.FAULT;
      }

      if (this.getLockOut()) {
        bits |= Status.ALARM;
      }

      return Status.make(bits);
    }
  };
});