Marko A. Rodriguez created TINKERPOP-1701:
---------------------------------------------
Summary: HaltedTraverserStrategy should recurse into collections
for detachment.
Key: TINKERPOP-1701
URL: https://issues.apache.org/jira/browse/TINKERPOP-1701
Project: TinkerPop
Issue Type: Improvement
Components: process
Affects Versions: 3.2.5
Reporter: Marko A. Rodriguez
Assignee: Marko A. Rodriguez
We need to make sure that {{HaltedTraverserStrategy}} recurses into
collections. This will be elegantly handled by updated {{DetachedFactory}} and
{{ReferenceFactory}} accordingly.
For instance:
{code}
public static <D> D detach(final Object object) {
if (object instanceof Element) {
return (D) ReferenceFactory.detach((Element) object);
} else if (object instanceof Property) {
return (D) ReferenceFactory.detach((Property) object);
} else if (object instanceof Path) {
return (D) ReferenceFactory.detach((Path) object);
} else if (object instanceof List) {
final List list = new ArrayList();
for (final Object item : (List) object) {
list.add(ReferenceFactory.detach(item));
}
return (D) list;
} else if (object instanceof Set) {
final Set set = object instanceof LinkedHashSet ? new
LinkedHashSet() : new HashSet();
for (final Object item : (Set) object) {
set.add(ReferenceFactory.detach(item));
}
return (D) set;
} else if (object instanceof Map) {
final Map map = object instanceof LinkedHashMap ? new
LinkedHashMap() : new HashMap();
for (final Map.Entry<Object, Object> entry : ((Map<Object, Object>)
object).entrySet()) {
map.put(ReferenceFactory.detach(entry.getKey()),
ReferenceFactory.detach(entry.getValue()));
}
return (D) map;
} else {
return (D) object;
}
}
{code}
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)