[windup-dev] Negative queries?

Ondrej Zizka ozizka at redhat.com
Thu Jul 31 16:29:07 EDT 2014


When talking to Robb, we discussed the ability to query for POJO classes 
- i.e. those which do not have any vendor-specific extension, do not use 
blacklisted classes, do not extend something "dirty", etc.

Which brings us to interesting concept - querying for something "not 
being a lot of things".

We have discussed this briefly on F2F with Brad.
The first shot could be:

* creating a method which will query for vertexes that have some frame 
type (JavaClass), but not any other, or a set of other types 
(WebLogicContextListener).

* querying for vertices which are not linked to vertices in sevral 
blacklists
     For example, querying for JavaClass'es not linked to a list of 
other JavaClass'es by an "extends" edge.
     This will need some way to keep the blacklists in the graph, and 
then, I can imagine Gremlin taking the part in filtering out the 
vertices linked to them by a set of edge types ("extends", "implements", 
"annotatedBy", "calls", "imports", ...)

And creating a disjunction of all these results, by narrowing the set of 
candidate vertices, step by step.

What I think is a BAD approach, is this kind of rules (outside of Java 
basic analysis):

         Query.find(JavaClassModel.class).as("javaClasses")

         Iteration.over("javaClasses").as("javaClass").perform(
                 ...
         )

my2c,
Ondra


More information about the windup-dev mailing list