Files
spring-data-neo4j/etc/jqassistant/structure.adoc
Florent Biville 8a3ac2d1ae DATAGRAPH-1421 - Add another round of copy editing.
Co-authored-by: Michael Simons <michael@simons.ac>
2020-11-04 09:43:14 +01:00

37 lines
1.6 KiB
Plaintext

[[structure:Default]]
[role=group,includesConstraints="structure:mapping,structure:support-packages"]
Most of the time, the package structure under `org.springframework.data.neo4j` should reflect the main building parts.
[[structure:mapping]]
[source,cypher,role=constraint,requiresConcepts="dependency:Package"]
.The mapping package must not depend on any other SDN packages than `schema` and `convert`
----
MATCH (a:Main:Artifact)
OPTIONAL MATCH (a)-[:CONTAINS]->(s:Package) WHERE s.fqn in ['org.springframework.data.neo4j.core.schema', 'org.springframework.data.neo4j.core.convert']
WITH collect(s) as allowed, a
MATCH (a)-[:CONTAINS]->(p1:Package)-[:DEPENDS_ON]->(p2:Package)<-[:CONTAINS]-(a)
WHERE p1.fqn = 'org.springframework.data.neo4j.core.mapping'
AND NOT (p2 in allowed OR (p1) -[:CONTAINS]-> (p2))
RETURN p1,p2
----
[[structure:support-packages]]
[source,cypher,role=constraint,requiresConcepts="dependency:Package"]
.The public support packages must not depend directly on the mapping package
----
MATCH (a:Main:Artifact)
MATCH (a)-[:CONTAINS]->(p1:Package)
WHERE p1.fqn in [
'org.springframework.data.neo4j.core.convert',
'org.springframework.data.neo4j.core.schema',
'org.springframework.data.neo4j.core.support',
'org.springframework.data.neo4j.core.transaction'
]
WITH p1, a
MATCH (p1)-[:CONTAINS]->(t:Type)
MATCH (t)-[:DEPENDS_ON]->(t2:Type)<-[:CONTAINS]-(p2:Package)<-[:CONTAINS]-(a)
WHERE t2.fqn <> 'org.springframework.data.neo4j.core.mapping.Neo4jPersistentProperty'
AND p2.fqn = 'org.springframework.data.neo4j.core.mapping'
RETURN t
----