MarshalingTreeUnmarshalSource implements UnmarshalSource { public static Object unmarshal(ObjectNode tree, ClassLoader classLoader) throws IOException { Objects.requireNonNull(tree); Objects.requireNonNull(classLoader); UnmarshalSource unmarshalSource = create(tree); return DelegatingUnmarshalContext.unmarshal(unmarshalSource, classLoader); } private  MarshalingTreeUnmarshalSource(); static MarshalingTreeUnmarshalSource create(ObjectNode tree); static Object unmarshal(ObjectNode tree, ClassLoader classLoader); @Nullable @Override Object getObject(); @Nullable @Override final ByteSequence getByteSequence(Key key); @Nullable @Override final UnmarshalSource resolve(Key key);  }
@Test public void unmarshal() throws IOException { Person person = new Person(42, "Alice"); List<Marshaler<?>> marshalers = Arrays.asList(INTEGER_MARSHALER, STRING_MARSHALER, PERSON_MARSHALER); ObjectNode tree = MarshalingTreeBuilder.marshal(person, marshalers, (path, marshaler, object) -> true); Assert.assertEquals(MarshalingTreeUnmarshalSource.unmarshal(tree, getClass().getClassLoader()), person); }