* @return a Set<Object> of child names, for a given Fqn, or null if the Fqn refers to a node that does not exist.
*/
@SuppressWarnings("unchecked")
public Object perform(InvocationContext ctx)
{
ReadCommittedNode n = (ReadCommittedNode) (fqn == null ? null : ctx.lookUpNode(fqn));
if (n == null || n.isDeleted()) return null;
Map<Object, InternalNode<?, ?>> childrenMap = n.getDelegationTarget().getChildrenMap();
Collection<InternalNode> children = (Collection<InternalNode>) (childrenMap.isEmpty() ? Collections.emptySet() : childrenMap.values());
return getCorrectedChildNames(children, ctx);
}