public int calc(final String operator, final int... values) { final OperationPlugin operationPlugin = operationDispatcher.get(operator); if (operationPlugin == null) { throw new IllegalArgumentException("no operation found for operator " + operator); } return operationPlugin.calc(values); }
@Inject public Calculator6(final List<OperationPlugin> operationPlugins) { operationDispatcher = new HashMap<>(); for (final OperationPlugin operationPlugin : operationPlugins) { operationDispatcher.put(operationPlugin.getOperator(), operationPlugin); } }