def owner_flag_set
      if dependent? then
        raise MetadataError.new("#{declarer.qp}.#{self} cannot be set as a #{type.qp} owner since it is already defined as a #{type.qp} dependent")
      end
      inv_prop = inverse_property
      if inv_prop then
        inv_prop.qualify(:dependent) unless inv_prop.dependent?
      else
        inv_attr = type.dependent_attribute(@declarer)
        if inv_attr.nil? then
          raise MetadataError.new("The #{@declarer.qp} owner attribute #{self} of type #{type.qp} does not have an inverse")
        end
        logger.debug { "#{declarer.qp}.#{self} inverse is the #{type.qp} dependent attribute #{inv_attr}." }
        self.inverse = inv_attr
      end
    end
def owner_flag_set
      if dependent? then
        raise MetadataError.new("#{declarer.qp}.#{self} cannot be set as a #{type.qp} owner since it is already defined as a #{type.qp} dependent")
      end
      inv_prop = inverse_property
      if inv_prop then
        inv_prop.qualify(:dependent) unless inv_prop.dependent?
      else
        inv_attr = type.dependent_attribute(@declarer)
        if inv_attr.nil? then
          raise MetadataError.new("The #{@declarer.qp} owner attribute #{self} of type #{type.qp} does not have an inverse")
        end
        logger.debug { "#{declarer.qp}.#{self} inverse is the #{type.qp} dependent attribute #{inv_attr}." }
        self.inverse = inv_attr
      end
    end
This method is called when the owner flag is set.
 The inverse is inferred as the referenced owner type's dependent attribute which references
 this attribute's type.

 @raise [MetadataError] if this attribute is dependent or an inverse could not be inferred