maybe it's worth adding a private method like:

````
List<Plugin> getSupportedPlugins(Module); // return plugins or an empty list (never null)
```

Then all of these loops could be simplified, such as:

````
for (Plugin plugin : this.getSupportedPlugins(module)) {
     plugin.removeModule(module);
}
````

There would be no need for this either: if (this.plugins != null)

...so each of these 4 methods would only be 3 lines