Skip to content

Commit cff00eb

Browse files
authored
Merge pull request #396 from JuliaRobotics/maint/20Q2/cloudTags
Cloud Tags SET Functions and tests
2 parents f0a4857 + 9f46ce3 commit cff00eb

File tree

2 files changed

+126
-3
lines changed

2 files changed

+126
-3
lines changed

src/CloudGraphsDFG/services/CloudGraphsDFG.jl

Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -708,3 +708,126 @@ function setSolvable!(dfg::CloudGraphsDFG, sym::Symbol, solvable::Int)::Int
708708
solvable)
709709
return solvable
710710
end
711+
712+
713+
##==============================================================================
714+
## TAGS as a set, list, merge, remove, empty
715+
## CloudGraphsDFG functions
716+
##==============================================================================
717+
function mergeTags!(dfg::CloudGraphsDFG, sym::Symbol, tags::Vector{Symbol})
718+
719+
if isVariable(dfg,sym)
720+
getNode = getVariable
721+
updateNode! = updateVariable!
722+
else
723+
getNode = getFactor
724+
updateNode! = updateFactor!
725+
end
726+
727+
node = getNode(dfg, sym)
728+
union!(getTags(node), tags)
729+
730+
updateNode!(dfg, node)
731+
732+
return getTags(getNode(dfg, sym))
733+
734+
end
735+
736+
function removeTags!(dfg::CloudGraphsDFG, sym::Symbol, tags::Vector{Symbol})
737+
738+
if isVariable(dfg,sym)
739+
getNode = getVariable
740+
updateNode! = updateVariable!
741+
else
742+
getNode = getFactor
743+
updateNode! = updateFactor!
744+
end
745+
746+
node = getNode(dfg, sym)
747+
setdiff!(getTags(node), tags)
748+
749+
updateNode!(dfg, node)
750+
751+
return getTags(getNode(dfg, sym))
752+
753+
end
754+
755+
function emptyTags!(dfg::CloudGraphsDFG, sym::Symbol)
756+
757+
if isVariable(dfg,sym)
758+
getNode = getVariable
759+
updateNode! = updateVariable!
760+
else
761+
getNode = getFactor
762+
updateNode! = updateFactor!
763+
end
764+
765+
node = getNode(dfg, sym)
766+
empty!(getTags(node))
767+
768+
updateNode!(dfg, node)
769+
770+
return getTags(getNode(dfg, sym))
771+
772+
end
773+
774+
775+
776+
function RESERVED_mergeTags!(dfg::CloudGraphsDFG, sym::Symbol, tags::Vector{Symbol})
777+
778+
nodeId = _tryGetNeoNodeIdFromNodeLabel(dfg.neo4jInstance,
779+
dfg.userId,
780+
dfg.robotId,
781+
dfg.sessionId,
782+
sym)
783+
784+
neo4jNode = Neo4j.getnode(dfg.neo4jInstance.graph, nodeId)
785+
786+
addnodelabels(neo4jNode, string.(tags))
787+
788+
return Set(setdiff(Symbol.(getnodelabels(neo4jNode)), Symbol.([dfg.userId, dfg.robotId, dfg.sessionId]), [sym]))
789+
790+
end
791+
792+
793+
function RESERVED_removeTags!(dfg::CloudGraphsDFG, sym::Symbol, tags::Vector{Symbol})
794+
795+
nodeId = _tryGetNeoNodeIdFromNodeLabel(dfg.neo4jInstance,
796+
dfg.userId,
797+
dfg.robotId,
798+
dfg.sessionId,
799+
sym)
800+
801+
neo4jNode = Neo4j.getnode(dfg.neo4jInstance.graph, nodeId)
802+
803+
shouldStay = Symbol.([dfg.userId, dfg.robotId, dfg.sessionId]) [sym, :VARIABLE, :FACTOR]
804+
805+
for tag in tags
806+
if tag in shouldStay
807+
@warn("Label:$tag is not allowed to be removed from tags and will be ignored.")
808+
else
809+
deletenodelabel(neo4jNode, string(tag))
810+
end
811+
end
812+
813+
return Set(setdiff(Symbol.(getnodelabels(neo4jNode)), shouldStay))
814+
815+
end
816+
817+
818+
function RESERVED_emptyTags!(dfg::CloudGraphsDFG, sym::Symbol)
819+
820+
nodeId = _tryGetNeoNodeIdFromNodeLabel(dfg.neo4jInstance,
821+
dfg.userId,
822+
dfg.robotId,
823+
dfg.sessionId,
824+
sym)
825+
826+
neo4jNode = Neo4j.getnode(dfg.neo4jInstance.graph, nodeId)
827+
828+
shouldStay = Symbol.([dfg.userId, dfg.robotId, dfg.sessionId]) [sym, :VARIABLE, :FACTOR]
829+
tags = setdiff(Symbol.(getnodelabels(neo4jNode)), shouldStay)
830+
# tags = Symbol.(getnodelabels(neo4jNode))
831+
832+
return removeTags!(dfg, sym, tags)
833+
end

test/consolInterfaceDev.jl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -106,9 +106,9 @@ fac2 = addFactor!(newfg, [:b, :c], LinearConditional(Normal()))
106106
VariablesandFactorsCRUD_SET!(fg1, var1, var2, var3, fac0, fac1, fac2)
107107
end
108108

109-
# @testset "tags" begin
110-
# tagsTestBlock!(fg1, var1, v1_tags)
111-
# end
109+
@testset "tags" begin
110+
tagsTestBlock!(fg1, var1, v1_tags)
111+
end
112112
#
113113
#
114114
# fg = fg1

0 commit comments

Comments
 (0)