Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
N
neo4jRelation
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
qiuchaofei
neo4jRelation
Commits
2c5ffba2
Commit
2c5ffba2
authored
Feb 22, 2022
by
qiuchaofei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改过滤关系的算法
parent
64003e2c
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
82 additions
and
10 deletions
+82
-10
MetadataRelationServiceImpl.java
...ataRelation/service/impl/MetadataRelationServiceImpl.java
+82
-10
No files found.
src/main/java/com/keymobile/metadata/metadataRelation/service/impl/MetadataRelationServiceImpl.java
View file @
2c5ffba2
...
...
@@ -218,28 +218,100 @@ public class MetadataRelationServiceImpl implements IMetadataRelationService {
}
}
//如果是要过滤的,过滤节点后,要把两端的关系接上
Map
<
String
,
ReturnEdge
>
newEdgeMap
=
new
HashMap
<>();
for
(
String
filterNodeId
:
filterNodeIdList
){
if
(
source2Target
.
containsKey
(
filterNodeId
)
&&
target2Source
.
containsKey
(
filterNodeId
)){
//先用需要保留的,在从需要保留的另一端,看看是否需要过滤,如果要过了,就继续找,直到找到不需要过滤的节点
for
(
String
remianNodeId
:
remianNodeIdList
){
if
(
source2Target
.
containsKey
(
remianNodeId
)){
List
<
String
>
toIdList
=
source2Target
.
get
(
remianNodeId
);
if
(
toIdList
==
null
){
continue
;
}
for
(
String
toId:
toIdList
){
if
(
remianNodeIdList
.
contains
(
toId
)){
ReturnEdge
newEdge
=
new
ReturnEdge
();
newEdge
.
setEdgeId
(
remianNodeId
+
"_"
+
toId
);
newEdge
.
setFromId
(
remianNodeId
);
newEdge
.
setToId
(
toId
);
newEdge
.
setType
(
"流向"
);
newEdgeMap
.
put
(
newEdge
.
getEdgeId
(),
newEdge
);
}
else
{
List
<
String
>
to2toIdList
=
source2Target
.
get
(
toId
);
if
(
to2toIdList
==
null
){
continue
;
}
for
(
String
to2toId:
to2toIdList
){
if
(
remianNodeIdList
.
contains
(
to2toId
)){
ReturnEdge
newEdge
=
new
ReturnEdge
();
newEdge
.
setEdgeId
(
remianNodeId
+
"_"
+
to2toId
);
newEdge
.
setFromId
(
remianNodeId
);
newEdge
.
setToId
(
to2toId
);
newEdge
.
setType
(
"流向"
);
List
<
String
>
toIdList
=
source2Target
.
get
(
filterNodeId
);
List
<
String
>
fromIdList
=
target2Source
.
get
(
filterNodeId
);
newEdgeMap
.
put
(
newEdge
.
getEdgeId
(),
newEdge
);
}
else
{
}
}
}
}
}
for
(
String
fromId
:
fromIdList
){
for
(
String
toId
:
toIdList
){
if
(
target2Source
.
containsKey
(
remianNodeId
)){
List
<
String
>
fromIdList
=
target2Source
.
get
(
remianNodeId
);
for
(
String
fromId:
fromIdList
){
if
(
remianNodeIdList
.
contains
(
fromId
)){
ReturnEdge
newEdge
=
new
ReturnEdge
();
newEdge
.
setEdgeId
(
fromId
+
"_"
+
to
Id
);
newEdge
.
setEdgeId
(
fromId
+
"_"
+
remianNode
Id
);
newEdge
.
setFromId
(
fromId
);
newEdge
.
setToId
(
toId
);
newEdge
.
setToId
(
remianNodeId
);
newEdge
.
setType
(
"流向"
);
newEdgeMap
.
put
(
newEdge
.
getEdgeId
(),
newEdge
);
}
else
{
List
<
String
>
from2FromIdList
=
target2Source
.
get
(
fromId
);
if
(
from2FromIdList
==
null
){
continue
;
}
for
(
String
from2FromId:
from2FromIdList
){
if
(
remianNodeIdList
.
contains
(
from2FromId
)){
ReturnEdge
newEdge
=
new
ReturnEdge
();
newEdge
.
setEdgeId
(
from2FromId
+
"_"
+
remianNodeId
);
newEdge
.
setFromId
(
from2FromId
);
newEdge
.
setToId
(
remianNodeId
);
newEdge
.
setType
(
"流向"
);
newEdgeMap
.
put
(
newEdge
.
getEdgeId
(),
newEdge
);
}
else
{
}
}
}
}
}
}
//如果是要过滤的,过滤节点后,要把两端的关系接上
// for(String filterNodeId :filterNodeIdList){
// if(source2Target.containsKey(filterNodeId)
// && target2Source.containsKey(filterNodeId)){
//
// List<String> toIdList = source2Target.get(filterNodeId);
// List<String> fromIdList = target2Source.get(filterNodeId);
//
// for(String fromId :fromIdList){
// for(String toId : toIdList){
// ReturnEdge newEdge = new ReturnEdge();
// newEdge.setEdgeId(fromId+"_"+toId);
// newEdge.setFromId(fromId);
// newEdge.setToId(toId);
// newEdge.setType("流向");
//
// newEdgeMap.put(newEdge.getEdgeId(),newEdge);
// }
// }
// }
// }
for
(
Object
obj
:
newEdgeMap
.
keySet
()){
ReturnEdge
newEdge
=
newEdgeMap
.
get
(
obj
);
newReslult
.
getEdges
().
add
(
newEdge
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment