test_class.file: step-core/src/test/java/step/core/plugins/PluginManagerTest.java
test_class.identifier: PluginManagerTest
test_case.body: @Test
  	public void testBuilderWithPluginList4() throws CircularDependencyException {
  		PluginManager<TestPluginInterface> pluginManager = pluginManager().withPlugins(plugins(new TestPlugin5(),new TestPlugin4(),new TestPlugin3(),new TestPlugin2(),new TestPlugin1())).build();
  		assertOrder(pluginManager, new TestPlugin3(), new TestPlugin1(), new TestPlugin4(), new TestPlugin5(), new TestPlugin2());
  	}
test_case.class_method_signature: PluginManagerTest.testBuilderWithPluginList4()
test_case.full_signature: @Test public void testBuilderWithPluginList4()
test_case.identifier: testBuilderWithPluginList4
test_case.invocations: build withPlugins pluginManager plugins assertOrder
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testBuilderWithPluginList4()
focal_class.declarator: logger = LoggerFactory.getLogger(PluginManager.class)
focal_class.modifier: private static
focal_class.original_string: private static Logger logger = LoggerFactory.getLogger(PluginManager.class);
focal_class.type: Logger
focal_class.var_name: logger
focal_class.declarator: pluginClass
focal_class.modifier: private final
focal_class.original_string: private final Class<T> pluginClass;
focal_class.type: Class<T>
focal_class.var_name: pluginClass
focal_class.declarator: plugins
focal_class.modifier: private final
focal_class.original_string: private final List<T> plugins;
focal_class.type: List<T>
focal_class.var_name: plugins
focal_class.file: step-core/src/main/java/step/core/plugins/PluginManager.java
focal_class.identifier: PluginManager
focal_class.class_method_signature: PluginManager.PluginManager(Class<T> pluginClass, List<T> plugins)
focal_class.full_signature: private  PluginManager(Class<T> pluginClass, List<T> plugins)
focal_class.identifier: PluginManager
focal_class.modifiers: private
focal_class.parameters: (Class<T> pluginClass, List<T> plugins)
focal_class.signature:  PluginManager(Class<T> pluginClass, List<T> plugins)
focal_class.class_method_signature: PluginManager.getProxy()
focal_class.full_signature: public T getProxy()
focal_class.identifier: getProxy
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: T
focal_class.signature: T getProxy()
focal_class.class_method_signature: PluginManager.getProxy(Class<I> proxyInterface)
focal_class.full_signature: public I getProxy(Class<I> proxyInterface)
focal_class.identifier: getProxy
focal_class.modifiers: public
focal_class.parameters: (Class<I> proxyInterface)
focal_class.return: I
focal_class.signature: I getProxy(Class<I> proxyInterface)
focal_class.class_method_signature: PluginManager.getPlugins()
focal_class.full_signature: public List<T> getPlugins()
focal_class.identifier: getPlugins
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: List<T>
focal_class.signature: List<T> getPlugins()
focal_class.class_method_signature: PluginManager.builder(Class<T> pluginClass)
focal_class.full_signature: public static Builder<T> builder(Class<T> pluginClass)
focal_class.identifier: builder
focal_class.modifiers: public static
focal_class.parameters: (Class<T> pluginClass)
focal_class.return: Builder<T>
focal_class.signature: Builder<T> builder(Class<T> pluginClass)
focal_method.body: private PluginManager(Class<T> pluginClass, List<T> plugins) {
  		super();
  		this.pluginClass = pluginClass;
  		this.plugins = plugins;
  		
  		logger.info("Starting plugin manager with following plugins: "+Arrays.toString(plugins.toArray()));
  	}
focal_method.class_method_signature: PluginManager.PluginManager(Class<T> pluginClass, List<T> plugins)
focal_method.full_signature: private  PluginManager(Class<T> pluginClass, List<T> plugins)
focal_method.identifier: PluginManager
focal_method.modifiers: private
focal_method.parameters: (Class<T> pluginClass, List<T> plugins)
focal_method.signature:  PluginManager(Class<T> pluginClass, List<T> plugins)