# File vapor/persistencemgr.rb, line 284
    def query( klass, query, arguments, subclasses = true )
      raise TypeError unless klass.ancestors.include? Persistable
      raise TypeError unless query.is_a? String
      raise TypeError unless arguments.is_a? Array

      begin 
        statement = @query_parser.parse( query, arguments )
      rescue InvalidQueryError
        raise
      end

      oids = @backend.search_tuples( klass, statement, subclasses )
      
      result = Extent.new( self, klass, subclasses )

      if !oids.nil? then
        oids.each{|oid| result.add( oid ) }
      end

      return result
    end