//just for debugging, find control flow starting at main: MATCH (n)-[cf:CONTROL_FLOW*]->() where n.fqn=~'.*main.*' return n, cf
MATCH p=(mc1:MethodCall)-[:CONTROL_FLOW]->(mc2:MethodCall)
where mc1.fqn=~'de\\.johl\\..*' AND
MATCH p=(mc1:MethodCall)-[:CONTROL_FLOW]->(mc2:MethodCall) WHERE
NOT EXISTS(mc1-[:AGGREGATED_CALLS|CALLS*]->()-[:AGGREGATED_FIELD_WRITE]->(:Field)<-[:AGGREGATED_FIELD_WRITE|AGGREGATED_FIELD_READ]-()<-[:AGGREGATED_CALLS|CALLS*]-(mc2)) AND
NOT EXISTS(mc2-[:AGGREGATED_CALLS|CALLS*]->()-[:AGGREGATED_FIELD_WRITE]->(:Field)<-[:AGGREGATED_FIELD_WRITE|AGGREGATED_FIELD_READ]-()<-[:AGGREGATED_CALLS|CALLS*]-(mc1))
MATCH (class:Class)-[:CONTAINS_METHOD]->(:Method)-[:CONTROL_FLOW*]->(mc1)