'use strict';

var _get = require('babel-runtime/helpers/get')['default'];

var _inherits = require('babel-runtime/helpers/inherits')['default'];

var _createClass = require('babel-runtime/helpers/create-class')['default'];

var _classCallCheck = require('babel-runtime/helpers/class-call-check')['default'];

Object.defineProperty(exports, '__esModule', {
  value: true
});

exports['default'] = function (namespace) {
  var ArrayElement = namespace.getElementClass('array');

  var Category = (function (_ArrayElement) {
    _inherits(Category, _ArrayElement);

    function Category() {
      _classCallCheck(this, Category);

      _get(Object.getPrototypeOf(Category.prototype), 'constructor', this).apply(this, arguments);
      this.element = 'category';
    }

    _createClass(Category, [{
      key: 'resourceGroups',
      get: function get() {
        return this.children(function (item) {
          return item.classes.contains('resourceGroup');
        });
      }
    }, {
      key: 'dataStructures',
      get: function get() {
        return this.children(function (item) {
          return item.classes.contains('dataStructures');
        });
      }
    }, {
      key: 'scenarios',
      get: function get() {
        return this.children(function (item) {
          return item.classes.contains('scenario');
        });
      }
    }, {
      key: 'transitionGroups',
      get: function get() {
        return this.children(function (item) {
          return item.classes.contains('transitions');
        });
      }
    }, {
      key: 'authSchemeGroups',
      get: function get() {
        return this.children(function (item) {
          return item.classes.contains('authSchemes');
        });
      }
    }, {
      key: 'resources',
      get: function get() {
        return this.children(function (item) {
          return item.element === 'resource';
        });
      }
    }, {
      key: 'transitions',
      get: function get() {
        return this.children(function (item) {
          return item.element === 'transition';
        });
      }
    }, {
      key: 'authSchemes',
      get: function get() {
        var schemes = ['Basic Authentication Scheme', 'Token Authentication Scheme', 'OAuth2 Scheme'];
        return this.children(function (item) {
          return schemes.indexOf(item.element) !== -1;
        });
      }
    }]);

    return Category;
  })(ArrayElement);

  namespace.register('category', Category);
};

module.exports = exports['default'];
//# sourceMappingURL=category.map