[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [cme-dev] Filtering query results
|
Hi Santosh,
> What I am trying to do programatically is equivalent to running a
> query like "class V*"
> and then adding all the obtained results to a new concern and then running
> a query like "call( * *(..))" on this concern.
I think the rub is that you need to take your results and explicitly add them to
a concern *as well as* to the concern space:
//create a concern
Concern vClasses = new ConcernImpl("vClasses",
IntensionalOrExtensionalGroup.GroupKind.INTENSIONAL, _space);
Pattern query = new PantherPatternImpl("class V*");
vClasses.setSpecificationDefinition(query);
//add it to the space
vClasses.addToContextForIntensionalSpecificationEvaluation(_space);
vClasses.evaluate(new UninterruptibleMonitor());
If I'm right, then having done this you can limit the scope of a query to your
concern like this:
QueryContext context = new QueryContextImpl();
context.setInputCollection(_space);
Pattern allCallsinVClasses = new PantherPatternImpl("in(concern vClasses)
&& call ( * *(..))");
context.setQuery(allCallsinVClasses);
Searchable result = context.evaluateQuery(new UninterruptibleMonitor());
Let me know if this helps... I'm just trying to figure this all out myself!
-phil
Santhosh Adiga wrote:
Hi all,
I have been trying to explore the programmatic
support of CME. I went through the sample project
given in the CME demos folder, as given there
to run a query on the input concern model we do
something like this
// Indicate that the colleciton to be searched is to be the entire
concern space.
context.setInputCollection(_space);
// Set up the query itself, in the Panther query language.
Pattern query = new PantherPatternImpl("class V*");
context.setQuery(query);
// Execute the query.
SearchableRead result = context.evaluateQuery(new
UninterruptibleMonitor());
Now if I want to filter out the query results further, for
example running the
query "call ( * *(..))" on the query results obtained earlier how do I
do it? I tried setting
the query context's input collection to hold the query result, but
doing so would detach
the original universal concern space, and is not giving me any results.
What I am trying to do programatically is equivalent to running a
query like "class V*"
and then adding all the obtained results to a new concern and then running
a query like "call( * *(..))" on this concern.
Any help on this will be greatly appreciated.
Thanks and Regards
Santhosh.
_______________________________________________
cme-dev mailing list
cme-dev@xxxxxxxxxxx
http://dev.eclipse.org/mailman/listinfo/cme-dev