# File lib/rgen/metamodel_builder/builder_extensions.rb, line 107
  def has_many(role, target_class=nil, raw_props={}, &block)
    props = Intermediate::Reference.new(target_class, _setManyUpperBound(_ownProps(raw_props).merge({
      :name=>role, :containment=>false})))
    raise "No opposite available" unless _oppositeProps(raw_props).empty?
    FeatureBlockEvaluator.eval(block, props)
    _build_internal(props)
  end