@Test public void prune_descendants() { ModelLoader loader = generate(new String[] { "projective a = { key : INT; };", "projective b = a;", "c = a;", "d = b;", "e = c + d;", }); Class<?> a = loader.modelType("A"); Class<?> b = loader.modelType("B"); Class<?> e = loader.modelType("E"); assertThat(e.getInterfaces(), includes(b)); assertThat(e.getInterfaces(), not(includes(a))); }
@Override public List<Type> getInterfaces(EmitContext context, ModelDeclaration model) { return collect(context, model).stream() .map(context::resolve) .collect(Collectors.toList()); }
ProjectionDriver extends JavaDataModelDriver { @Override public List<Type> getInterfaces(EmitContext context, ModelDeclaration model) { return collect(context, model).stream() .map(context::resolve) .collect(Collectors.toList()); } }
ProjectionDriver extends JavaDataModelDriver { @Override public List<Type> getInterfaces(EmitContext context, ModelDeclaration model) { return collect(context, model).stream() .map(context::resolve) .collect(Collectors.toList()); }  }
ProjectionDriver extends JavaDataModelDriver { @Override public List<Type> getInterfaces(EmitContext context, ModelDeclaration model) { return collect(context, model).stream() .map(context::resolve) .collect(Collectors.toList()); }  @Override List<Type> getInterfaces(EmitContext context, ModelDeclaration model); }
ProjectionDriver extends JavaDataModelDriver { @Override public List<Type> getInterfaces(EmitContext context, ModelDeclaration model) { return collect(context, model).stream() .map(context::resolve) .collect(Collectors.toList()); }  @Override List<Type> getInterfaces(EmitContext context, ModelDeclaration model);  }