core: some refactorings of RDF.Graph
This commit is contained in:
parent
443e43da6f
commit
7b659d5ddf
1 changed files with 18 additions and 18 deletions
|
@ -107,12 +107,13 @@ defmodule RDF.Graph do
|
|||
def add(%RDF.Graph{name: name, descriptions: descriptions},
|
||||
subject, predicate, object) do
|
||||
with subject = Triple.convert_subject(subject) do
|
||||
updated_descriptions =
|
||||
Map.update(descriptions, subject,
|
||||
Description.new({subject, predicate, object}), fn description ->
|
||||
description |> Description.add({predicate, object})
|
||||
end)
|
||||
%RDF.Graph{name: name, descriptions: updated_descriptions}
|
||||
%RDF.Graph{name: name,
|
||||
descriptions:
|
||||
Map.update(descriptions, subject,
|
||||
Description.new({subject, predicate, object}), fn description ->
|
||||
description |> Description.add({predicate, object})
|
||||
end)
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -160,14 +161,12 @@ defmodule RDF.Graph do
|
|||
def put(%RDF.Graph{name: name, descriptions: descriptions},
|
||||
subject, predicate, objects) do
|
||||
with subject = Triple.convert_subject(subject) do
|
||||
new_description = case descriptions[subject] do
|
||||
%Description{} = description ->
|
||||
Description.put(description, predicate, objects)
|
||||
nil ->
|
||||
Description.new(subject, predicate, objects)
|
||||
end
|
||||
%RDF.Graph{name: name,
|
||||
descriptions: Map.put(descriptions, subject, new_description)}
|
||||
descriptions:
|
||||
Map.update(descriptions, subject,
|
||||
Description.new(subject, predicate, objects),
|
||||
fn current -> Description.put(current, predicate, objects) end)
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -214,11 +213,12 @@ defmodule RDF.Graph do
|
|||
def put(%RDF.Graph{name: name, descriptions: descriptions}, subject, predications)
|
||||
when is_list(predications) do
|
||||
with subject = Triple.convert_subject(subject) do
|
||||
description =
|
||||
Map.get(descriptions, subject, Description.new(subject))
|
||||
new_descriptions =
|
||||
Map.put(descriptions, subject, Description.put(description, predications))
|
||||
%RDF.Graph{name: name, descriptions: new_descriptions}
|
||||
%RDF.Graph{name: name,
|
||||
descriptions:
|
||||
Map.update(descriptions, subject,
|
||||
Description.new(subject, predications),
|
||||
fn current -> current |> Description.put(predications) end)
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in a new issue