public void removeChild(Node<V> removed) {
mChildren.remove(removed);
}
+
+ public void clearPayload() {
+ mPayload = null;
+ }
}
return new Pair<String, String>(targetKey, linkedTo);
};
+
+ public Pair<V, String> removePayload(Account account, String remotePath) {
+ String targetKey = buildKey(account, remotePath);
+ Node<V> target = mMap.get(targetKey);
+ if (target != null) {
+ target.clearPayload();
+ if (!target.hasChildren()) {
+ return remove(account, remotePath);
+ }
+ }
+ return new Pair<V, String>(null, null);
+ }
+
+
public /* synchronized */ Pair<V, String> remove(Account account, String remotePath) {
String targetKey = buildKey(account, remotePath);
Node<V> firstRemoved = mMap.remove(targetKey);
if (parent != null) {
unlinkedFrom = parent.getKey().substring(account.name.length());
}
- }
- if (firstRemoved != null) {
return new Pair<V, String>(firstRemoved.getPayload(), unlinkedFrom);
- } else {
- return new Pair<V, String>(null, unlinkedFrom);
}
+ return new Pair<V, String>(null, null);
}
private void removeDescendants(Node<V> removed) {
}
}
+ public V get(Account account, String remotePath) {
+ String key = buildKey(account, remotePath);
+ return get(key);
+ }
+
/**
* Builds a key to index files