I have an Enum called Plugins:
public enum Plugins {
ROTATING_LINE (plugin.rotatingline.RotatingLine.class),
SNOW_SYSTEM (plugin.snow.SnowSystem.cla
Create an interface for the plugins
public interface Plugin{
setShapeType();
setX();
setY();
...
}
Create a method on the enum that creates an instance of Plugin.
public enum Plugins {
ROTATING_LINE (plugin.rotatingline.RotatingLine.class),
SNOW_SYSTEM (plugin.snow.SnowSystem.class);
private Class extends Plugin> c;
private Plugins (Class extends Plugin> c) {
this.c = c;
}
// This acts as a constructor that takes args, I am assuming the args you need
public Class extends Plugin> createInstance(String shapeType,int x, int y) {
Plugin plugin = c.newInstance();
plugin.setShapeType(shapeType);
plugin.setX(x);
plugin.setY(y);
return plugin;
}
}
Instantiate in loop
List myPlugins = new ArrayList();
for (Plugins plugins : Plugins.values()) {
myPlugins.add(plugin.createInstance(Shaped.parent, 400, 400));
}
Please note this is Psuedo Code