ApiFilteredNode extends ApiNode implements FilteredNode { @Override public FilteredNode show(Filter<Node> filter) { List<Filter<Node>> filters = new LinkedList<Filter<Node>>(); if (map != null) { filters.addAll(map.filters); } filters.add(Parameters.requireNonNull(filter, "filter")); return new ApiFilteredNode(navigation, context, new FilteredNodeMap(filters)); } @SuppressWarnings("unchecked")  ApiFilteredNode(NavigationImpl navigation, NodeContext<ApiNode> context); private  ApiFilteredNode(NavigationImpl navigation, NodeContext<ApiNode> context, FilteredNodeMap map); @Override Node addChild(int index, String childName); @Override Node addChild(String childName); @Override Node getChild(int index); @Override Node getChild(String childName); @Override int getChildCount(); @Override Node getNode(NodePath nodePath); @Override Node getParent(); @Override boolean hasChild(String childName); @Override int indexOf(String childName); @Override Iterator<Node> iterator(); @Override void moveTo(int index); @Override void moveTo(int index, Node parent); @Override @SuppressWarnings("unchecked") FilteredNode showAll(); @Override FilteredNode showDefault(); @Override FilteredNode showHasAccess(User user); FilteredNode showHasEdit(User user); @Override FilteredNode showVisible(); @Override FilteredNode show(Filter<Node> filter);  }
@Test(expected = IllegalArgumentException.class) public void show_NullFilter() { root.filter().show(null); }