@Override public Identified instantiate(PropertyLookup<Identified> lookup) { return new Identified(lookup.valueOf(identity, new Identity("default-identity"))); } };
@Override public Identity instantiate(PropertyLookup<Identity> lookup) { return new Identity(lookup.valueOf(name, "default-name")); } };
@Override public ThingToMake instantiate(PropertyLookup<ThingToMake> lookup) { return new ThingToMake(lookup.valueOf(name, "Nemo"), lookup.valueOf(age, 99)); } };
@Override public SecretAgent instantiate(PropertyLookup<SecretAgent> lookup) { return new SecretAgent( lookup.valueOf(assumedIdentities, Collections.<Identity>emptyList())); } };
@Override public ThingContainer instantiate(PropertyLookup<ThingContainer> lookup) { return new ThingContainer(lookup.valueOf(thing, make(a(ThingToMake)))); } };