test_class.declarator: registry = new HashMap<>()
test_class.modifier: private
test_class.original_string: private Map<String, Object> registry = new HashMap<>();
test_class.type: Map<String, Object>
test_class.var_name: registry
test_class.declarator: context
test_class.modifier: private
test_class.original_string: private DefaultPluginContext context;
test_class.type: DefaultPluginContext
test_class.var_name: context
test_class.declarator: plugin = new TestPlugin()
test_class.modifier: private
test_class.original_string: private TestPlugin plugin = new TestPlugin();
test_class.type: TestPlugin
test_class.var_name: plugin
test_class.declarator: optionalPlugin = new OptionalPlugin()
test_class.modifier: private
test_class.original_string: private OptionalPlugin optionalPlugin = new OptionalPlugin();
test_class.type: OptionalPlugin
test_class.var_name: optionalPlugin
test_class.file: plugface-core/src/test/java/org/plugface/core/impl/DefaultPluginContextTest.java
test_class.identifier: DefaultPluginContextTest
test_case.body: @Test
      public void shouldRetrieveAllThePlugins() throws Exception {
          registry.put("test", plugin);
          registry.put("optional", optionalPlugin);
  
          final List<PluginRef> all = (List<PluginRef>) context.getAllPlugins();
          assertFalse(all.isEmpty());
  
          for (int i = 0; i < all.size(); i++) {
              switch (i) {
                  case 0: {
                      final PluginRef ref = all.get(i);
                      assertEquals("test", ref.getName());
                      assertEquals(plugin, ref.get());
                      assertEquals(TestPlugin.class, ref.getType());
                      break;
                  }
                  case 1: {
                      final PluginRef ref = all.get(i);
                      assertEquals("optional", ref.getName());
                      assertEquals(optionalPlugin, ref.get());
                      assertEquals(OptionalPlugin.class, ref.getType());
                      break;
                  }
              }
          }
      }
test_case.class_method_signature: DefaultPluginContextTest.shouldRetrieveAllThePlugins()
test_case.full_signature: @Test public void shouldRetrieveAllThePlugins()
test_case.identifier: shouldRetrieveAllThePlugins
test_case.invocations: put put getAllPlugins assertFalse isEmpty size get assertEquals getName assertEquals get assertEquals getType get assertEquals getName assertEquals get assertEquals getType
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void shouldRetrieveAllThePlugins()
focal_class.declarator: registry
focal_class.modifier: private final
focal_class.original_string: private final Map<String, Object> registry;
focal_class.type: Map<String, Object>
focal_class.var_name: registry
focal_class.file: plugface-core/src/main/java/org/plugface/core/impl/DefaultPluginContext.java
focal_class.identifier: DefaultPluginContext
focal_class.interfaces: implements PluginContext
focal_class.class_method_signature: DefaultPluginContext.DefaultPluginContext()
focal_class.full_signature: public  DefaultPluginContext()
focal_class.identifier: DefaultPluginContext
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.signature:  DefaultPluginContext()
focal_class.class_method_signature: DefaultPluginContext.DefaultPluginContext(Map<String, Object> registry)
focal_class.full_signature: public  DefaultPluginContext(Map<String, Object> registry)
focal_class.identifier: DefaultPluginContext
focal_class.modifiers: public
focal_class.parameters: (Map<String, Object> registry)
focal_class.signature:  DefaultPluginContext(Map<String, Object> registry)
focal_class.class_method_signature: DefaultPluginContext.getPlugin(String pluginName)
focal_class.full_signature: @Override @Nullable public T getPlugin(String pluginName)
focal_class.identifier: getPlugin
focal_class.modifiers: @Override @Nullable public
focal_class.parameters: (String pluginName)
focal_class.return: T
focal_class.signature: T getPlugin(String pluginName)
focal_class.class_method_signature: DefaultPluginContext.getPlugin(Class<T> pluginClass)
focal_class.full_signature: @Override @Nullable public T getPlugin(Class<T> pluginClass)
focal_class.identifier: getPlugin
focal_class.modifiers: @Override @Nullable public
focal_class.parameters: (Class<T> pluginClass)
focal_class.return: T
focal_class.signature: T getPlugin(Class<T> pluginClass)
focal_class.class_method_signature: DefaultPluginContext.getAllPlugins()
focal_class.full_signature: @Override public Collection<PluginRef> getAllPlugins()
focal_class.identifier: getAllPlugins
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: Collection<PluginRef>
focal_class.signature: Collection<PluginRef> getAllPlugins()
focal_class.class_method_signature: DefaultPluginContext.addPlugin(T plugin)
focal_class.full_signature: @Override public void addPlugin(T plugin)
focal_class.identifier: addPlugin
focal_class.modifiers: @Override public
focal_class.parameters: (T plugin)
focal_class.return: void
focal_class.signature: void addPlugin(T plugin)
focal_class.class_method_signature: DefaultPluginContext.addPlugin(String name, T plugin)
focal_class.full_signature: @Override public void addPlugin(String name, T plugin)
focal_class.identifier: addPlugin
focal_class.modifiers: @Override public
focal_class.parameters: (String name, T plugin)
focal_class.return: void
focal_class.signature: void addPlugin(String name, T plugin)
focal_class.class_method_signature: DefaultPluginContext.removePlugin(T plugin)
focal_class.full_signature: @Override @Nullable public T removePlugin(T plugin)
focal_class.identifier: removePlugin
focal_class.modifiers: @Override @Nullable public
focal_class.parameters: (T plugin)
focal_class.return: T
focal_class.signature: T removePlugin(T plugin)
focal_class.class_method_signature: DefaultPluginContext.removePlugin(String pluginName)
focal_class.full_signature: @Override @Nullable public T removePlugin(String pluginName)
focal_class.identifier: removePlugin
focal_class.modifiers: @Override @Nullable public
focal_class.parameters: (String pluginName)
focal_class.return: T
focal_class.signature: T removePlugin(String pluginName)
focal_class.class_method_signature: DefaultPluginContext.hasPlugin(String pluginName)
focal_class.full_signature: @Override public boolean hasPlugin(String pluginName)
focal_class.identifier: hasPlugin
focal_class.modifiers: @Override public
focal_class.parameters: (String pluginName)
focal_class.return: boolean
focal_class.signature: boolean hasPlugin(String pluginName)
focal_class.class_method_signature: DefaultPluginContext.hasPlugin(Class<T> pluginClass)
focal_class.full_signature: @Override public boolean hasPlugin(Class<T> pluginClass)
focal_class.identifier: hasPlugin
focal_class.modifiers: @Override public
focal_class.parameters: (Class<T> pluginClass)
focal_class.return: boolean
focal_class.signature: boolean hasPlugin(Class<T> pluginClass)
focal_class.class_method_signature: DefaultPluginContext.isImplementingInterface(Class<?> clazz, Class<?> wanted)
focal_class.full_signature: private boolean isImplementingInterface(Class<?> clazz, Class<?> wanted)
focal_class.identifier: isImplementingInterface
focal_class.modifiers: private
focal_class.parameters: (Class<?> clazz, Class<?> wanted)
focal_class.return: boolean
focal_class.signature: boolean isImplementingInterface(Class<?> clazz, Class<?> wanted)
focal_method.body: @Override
      public Collection<PluginRef> getAllPlugins() {
          final ArrayList<PluginRef> plugins = new ArrayList<>();
          for (Map.Entry<String, Object> entry : registry.entrySet()) {
              plugins.add(PluginRef.of(entry.getValue(), entry.getKey()));
          }
          return plugins;
      }
focal_method.class_method_signature: DefaultPluginContext.getAllPlugins()
focal_method.full_signature: @Override public Collection<PluginRef> getAllPlugins()
focal_method.identifier: getAllPlugins
focal_method.invocations: entrySet add of getValue getKey
focal_method.modifiers: @Override public
focal_method.parameters: ()
focal_method.return: Collection<PluginRef>
focal_method.signature: Collection<PluginRef> getAllPlugins()