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