AbstractExecution implements Execution<T> { @Override public final Class<T> getType() { return type; } AbstractExecution(
            Class<T> type, 
            State state, 
            Set<Dependency> dependencies,
            MissingArgumentStrategy missingArgumentStrategy); String getName(); @Override final Class<T> getType(); @Override final State getState(); @Override final Set<Dependency> getDependencies(); @Override MissingArgumentStrategy getMissingArgumentStrategy(); @Override String toString();  }
@Test void getType() { assertEquals(Foo.class, instance.getType()); }