@@ -79,6 +79,13 @@ function getBlobEntry(var::AbstractDFGVariable, key::Symbol)
79
79
return var. dataDict[key]
80
80
end
81
81
82
+ function getBlobEntry (var:: PackedVariable , key:: Symbol )
83
+ if ! hasBlobEntry (var, key)
84
+ throw (KeyError (" No dataEntry label $(key) found in variable $(getLabel (var)) . Available keys: $(keys (var. dataDict)) " ))
85
+ end
86
+ return var. blobEntries[findfirst (x-> x. label == key, var. blobEntries)]
87
+ end
88
+
82
89
function getBlobEntry (var:: AbstractDFGVariable , blobId:: UUID )
83
90
for (k,v) in var. dataDict
84
91
if blobId in [v. originId, v. blobId]
@@ -204,6 +211,9 @@ Does a blob entry (element) exist with `blobLabel`.
204
211
"""
205
212
hasBlobEntry (var:: AbstractDFGVariable , blobLabel:: Symbol ) = haskey (var. dataDict, blobLabel)
206
213
214
+ function hasBlobEntry (var:: PackedVariable , label:: Symbol )
215
+ return label in getproperty .(var. blobEntries, :label )
216
+ end
207
217
208
218
"""
209
219
$(SIGNATURES)
@@ -271,6 +281,10 @@ function listBlobEntries(var::AbstractDFGVariable)
271
281
collect (keys (var. dataDict))
272
282
end
273
283
284
+ function listBlobEntries (var:: PackedVariable )
285
+ return getproperty .(var. blobEntries, :label )
286
+ end
287
+
274
288
function listBlobEntries (dfg:: AbstractDFG , label:: Symbol )
275
289
# !isVariable(dfg, label) && return nothing
276
290
listBlobEntries (getVariable (dfg, label))
0 commit comments