def new(klass)
      if klass.is_a?(String)
        klass = Object.const_get(klass)
      end
      object = klass.new(self, generate_uuid)
      object.initialize_defaults
      object
    end
def new(klass)
      if klass.is_a?(String)
        klass = Object.const_get(klass)
      end
      object = klass.new(self, generate_uuid)
      object.initialize_defaults
      object
    end
@!group Creating objects
-------------------------------------------------------------------------
 Creates a new object with a suitable UUID.

 The object is only configured with the default values of the `:simple`
 attributes, for this reason it is better to use the convenience methods
 offered by the {AbstractObject} subclasses or by this class.

 @param  [Class, String] klass
         The concrete subclass of AbstractObject for new object or its
         ISA.

 @return [AbstractObject] the new object.