def add_defaults
      # If there is an owner, then delegate to the owner.
      # Otherwise, add defaults to this object.
      par = owner
      if par and par.identifier.nil? then
        logger.debug { "Adding defaults to #{qp} owner #{par.qp}..." }
        par.add_defaults
      else
        logger.debug { "Adding defaults to #{qp} and its dependents..." }
        # apply the local and dependent defaults
        add_defaults_recursive
      end
      self
    end
def add_defaults
      # If there is an owner, then delegate to the owner.
      # Otherwise, add defaults to this object.
      par = owner
      if par and par.identifier.nil? then
        logger.debug { "Adding defaults to #{qp} owner #{par.qp}..." }
        par.add_defaults
      else
        logger.debug { "Adding defaults to #{qp} and its dependents..." }
        # apply the local and dependent defaults
        add_defaults_recursive
      end
      self
    end
Sets the default attribute values for this domain object and its dependents. If this Resource
 does not have an identifier, then missing attributes are set to the values defined by
 {Propertied#add_attribute_defaults}.

 Subclasses should override the private {#add_defaults_local} method rather than this method.

 @return [Resource] self