private static Manageable findSub(Manageable target, String sub) { String[] parts = sub.split("/", 3); String seg = parts[0]; String id = parts[1]; List<? extends Manageable> segment = target.getManageableChildren().get(seg); U.must(segment != null, "Cannot find the manageable segment: %s", seg); target = findById(segment, id); U.must(target != null, "Cannot find the sub-manageable with id: %s in segment: %s", id, seg); target.reloadManageable(); return parts.length > 2 ? findSub(target, parts[2]) : target; }