text: // --------- This code has been automatically generated !!! Wed Jul 22 2015 13:15:46 GMT+0000 (UTC)
  /**
   * @module opcua.address_space.types
   */
  var doDebug = false;
  var assert = require("better-assert");
  var util = require("util");
  var _  = require("underscore");
  var makeNodeId = require("../lib/datamodel/nodeid").makeNodeId;
  var schema_helpers =  require("../lib/misc/factories_schema_helpers");
  var extract_all_fields                       = schema_helpers.extract_all_fields;
  var resolve_schema_field_types               = schema_helpers.resolve_schema_field_types;
  var initialize_field                         = schema_helpers.initialize_field;
  var initialize_field_array                   = schema_helpers.initialize_field_array;
  var check_options_correctness_against_schema = schema_helpers.check_options_correctness_against_schema;
  var _defaultTypeMap = require("../lib/misc/factories_builtin_types")._defaultTypeMap;
  var ec= require("../lib/misc/encode_decode");
  var encodeArray= ec.encodeArray;
  var decodeArray= ec.decodeArray;
  var makeExpandedNodeId= ec.makeExpandedNodeId;
  var generate_new_id = require("../lib/misc/factories").generate_new_id;
  var _enumerations = require("../lib/misc/factories_enumerations")._private._enumerations;
  var schema = require("../schemas/ElementOperand_schema").ElementOperand_Schema;
  var BaseUAObject = require("../lib/misc/factories_baseobject").BaseUAObject;
  var FilterOperand= require("./_auto_generated_FilterOperand").FilterOperand;
  
  /**
   * 
   * @class ElementOperand
   * @constructor
   * @extends FilterOperand
   * @param  options {Object}
   * @param  [options.index] {UInt32} Index into the element array
   */
  function ElementOperand(options)
  {
      options = options || {};
      /* istanbul ignore next */
      if (doDebug) { check_options_correctness_against_schema(this,schema,options); }
      var self = this;
      assert(this instanceof BaseUAObject); //  ' keyword "new" is required for constructor call')
      resolve_schema_field_types(schema);
  
      FilterOperand.call(this,options);
  
      /**
        * Index into the element array
        * @property index
        * @type {UInt32}
        */
      self.index = initialize_field(schema.fields[0], options.index);
  
     // Object.preventExtensions(self);
  }
  util.inherits(ElementOperand,FilterOperand);
  ElementOperand.prototype.encodingDefaultBinary =makeExpandedNodeId(594,0);
  ElementOperand.prototype._schema = schema;
  
  var encode_UInt32 = _defaultTypeMap.UInt32.encode;
  var decode_UInt32 = _defaultTypeMap.UInt32.decode;
  /**
   * encode the object into a binary stream
   * @method encode
   *
   * @param stream {BinaryStream} 
   */
  ElementOperand.prototype.encode = function(stream,options) {
      // call base class implementation first
      FilterOperand.prototype.encode.call(this,stream,options);
      encode_UInt32(this.index,stream);
  };
  ElementOperand.prototype.decode = function(stream,options) {
      // call base class implementation first
      FilterOperand.prototype.decode.call(this,stream,options);
      this.index = decode_UInt32(stream,options);
  };
  ElementOperand.possibleFields = function() {
      return [
          "index"
      ];
  }();
  
  
  exports.ElementOperand = ElementOperand;
  var register_class_definition = require("../lib/misc/factories_factories").register_class_definition;
  register_class_definition("ElementOperand",ElementOperand);