home *** CD-ROM | disk | FTP | other *** search
- /*
- IXAttributeQuery.h
- Copyright 1991, NeXT Computer, Inc.
- */
-
- #import <objc/Object.h>
- #import <objc/hashtable.h>
-
- #import "protocols.h"
-
- @class IXAttributeParser;
- @class IXPostingList;
-
- // This class performs query processing based on the NeXT IndexingKit query
- // language, documented on- line and in print. Classes that can be queried
- // include IXAttributeParser, IXFileFinder, IXFileRecord, and IXRecordManager.
-
- @interface IXAttributeQuery: Object
- {
- NXZone *_queryZone;
- id _queryBinder;
- BOOL _freeBinder;
- NXHashTable *_objectTable;
- NXHashTable *_opaqueTable;
- NXHashTable *_namingTable;
- struct TermRecord *_queryParse;
- struct TermRecord *_queryStack;
- id attributeParser;
- id queryContext;
- unsigned char *queryString;
- }
-
- // the parser processes text enclosed by the parse operator.
- - initQueryString:(const char *)string
- andAttributeParser:(IXAttributeParser *)aParser;
-
- // evaluates the query string against an object that has attribute bindings.
- // first, we request the attribute binder. if nil, we request the bindings.
- - (IXPostingList *)evaluateFor:(id <IXAttributeBinding>)anObject;
-
- - (char *)attributeNames; // a new line separated list; caller must free.
- - (IXAttributeParser *)attributeParser; // the one used by the parse operator.
- - (const char *)queryString; // returns the query string used to initialize.
-
- @end
-
-