whole_func_string: function Entity(entityConfiguration) {
      return function (constructor) {
          var entityMetadata = constructor;
          if (entityMetadata.entity) {
              throw "Cannot set @Table, it is already set to '" + JSON.stringify(entityMetadata.entity) + "'";
          }
          // FIXME: verify this works! (that it's not constructor.name)
          entityMetadata.name = constructor.prototype.name;
          if (!entityConfiguration) {
              entityConfiguration = true;
          }
          entityMetadata.entity = entityConfiguration;
      };
  }
func_code_string: function Entity(entityConfiguration) {
      return function (constructor) {
          var entityMetadata = constructor;
          if (entityMetadata.entity) {
              throw "Cannot set @Table, it is already set to '" + JSON.stringify(entityMetadata.entity) + "'";
          }
          // FIXME: verify this works! (that it's not constructor.name)
          entityMetadata.name = constructor.prototype.name;
          if (!entityConfiguration) {
              entityConfiguration = true;
          }
          entityMetadata.entity = entityConfiguration;
      };
  }
func_documentation_string: Annotates entities.
  
  @param entityConfiguration
  @returns {function(Function)}
  @constructor