Namespace { public Namespace child(List<String> values) { ImmutableList<String> child = ImmutableList.<String>builder().addAll(this.values).addAll(values).build(); return Namespace.of(child); } private  Namespace(List<String> values); static Namespace root(); static Namespace of(List<String> values); static Namespace of(String... values); List<String> getValues(); Namespace child(List<String> values); Namespace child(String... values); @Override int hashCode(); @Override boolean equals(Object obj); @Override String toString();  }
@Test public void testChild() throws Exception { Namespace namespace = Namespace.of("root"); Namespace child = namespace.child("child"); Assert.assertEquals(child.toString(), "root/child"); }