Какие свойства узла должны существовать для чистого имени graphml в jQassistant
Какими свойствами должен обладать узел, чтобы его имя отображалось в графе. GRÀFIC?
Я создаю некоторый узел на основе моих пакетов с
MATCH (artifact:Artifact)
WHERE
artifact.type <> "test-jar"
MATCH
(artifact:Artifact)-[:CONTAINS]->(root:Package{fqn:"net.sf.sze.dao.api"})-[:CONTAINS]->(slice:Package)
WITH COLLECT(slice) AS rows1
MATCH
(artifact:Artifact)-[:CONTAINS]->(root:Package{fqn:"net.sf.sze.frontend"})-[:CONTAINS]->(slice:Package)
WITH rows1 + COLLECT(slice) AS rows2
MATCH
(artifact:Artifact)-[:CONTAINS]->(root:Package{fqn:"net.sf.sze.service"})-[:CONTAINS *2..2]->(slice:Package)
WITH rows2 + COLLECT(slice) AS rows3
UNWIND rows3 AS slice
MERGE (sn:Slice{name:slice.name})
MERGE (sn)-[:SLICE_CONTAINS]-> (slice)
RETURN
sn
и попробуйте создать диаграмму graphml с
MATCH
(slice1:Slice)-[:SLICE_CONTAINS]->()-[:CONTAINS*]->(t1:Type),
(slice2:Slice)-[:SLICE_CONTAINS]->()-[:CONTAINS*]->(t2:Type),
(t1)-[d:DEPENDS_ON]->(t2)
WHERE
slice1 <> slice2
WITH
slice1, slice2, count(d) as weight
RETURN
slice1 as Slice1, slice2 as Slice2, {
role : "relationship",
type : "DEPENDS_ON",
startNode: slice1,
endNode: slice2,
properties: {
weight: weight
}
} as Dependency
График создан хорошо, ожидайте имена узлов. Я получаю только как лейбл CompositeObject, id = 123456
что делает диаграмму бесполезной.
Кто-нибудь может дать мне подсказку, что не так?
1 ответ
Решение
Для типов, определенных сканером jQAssistant, существуют правила, специфичные для типов, которые будут отображаться как метки, например, "fqn" для помеченных узлов ":Artifact".
Вы создаете виртуальные отношения, в которых тип не может быть определен, поэтому никакое свойство не может быть показано. jQAssistant 1.3.0 будет поддерживать свойство "label" для управления этим, например
....
RETURN
slice1 as Slice1, slice2 as Slice2, {
role : "relationship",
type : "DEPENDS_ON",
startNode: slice1,
endNode: slice2,
label: weight, // set an explicit label
properties: {
weight: weight
}
} as Dependency