protected void init() { if (toolMap == null) { toolMap = new HashMap<>(); toolList = new ArrayList<>(); List<? extends FxTool> tools = pluginService.createInstancesOfType(FxTool.class); for (FxTool tool : tools) { toolMap.put(tool.getClass(), tool); toolList.add(tool); } setCurrentTool(Hand.class); } }
private List<Gateway> gateways() { final ArrayList<Gateway> gateways = new ArrayList<>(); if (pluginService == null) return gateways; // HACK: Instantiating a Gateway with the noargs constructor spins // up a second Context, which is not what we want. Perhaps SJC should // be changed to prefer a single-argument constructor that accepts a // Context, before trying the noargs constructor? // In the meantime, we do it manually here. final List<PluginInfo<Gateway>> infos = pluginService.getPluginsOfType(Gateway.class); for (final PluginInfo<Gateway> info : infos) { try { final Constructor<? extends Gateway> ctor = info.loadClass().getConstructor(Context.class); final Gateway gateway = ctor.newInstance(context); gateways.add(gateway); } catch (final Throwable t) { t.printStackTrace(out); } } return gateways; }
/** Creates the postprocessor chain. */ private List<? extends PostprocessorPlugin> post(final boolean process) { if (!process) return null; return pluginService.createInstancesOfType(PostprocessorPlugin.class); }