/** * Uses the {@link ExpressionParserBuilder} to create an {@link ExpressionParser} with all modules * that are registered to the {@link ExpressionRegistry}. * * @param op the operator to create the {@link ExpressionParser} for. Must not be {@code null} * @param exampleResolver the {@link ExampleResolver} which is used to lookup example values. * Might be {@code null} in case no {@link ExampleResolver} is available * @return the build expression parser */ public static ExpressionParser createAllModulesParser( final Operator op, final ExampleResolver exampleResolver) { ExpressionParserBuilder builder = new ExpressionParserBuilder(); // decide which functions should be available builder.withCompatibility(op.getCompatibilityLevel()); if (op.getProcess() != null) { builder.withProcess(op.getProcess()); builder.withScope(new MacroResolver(op.getProcess().getMacroHandler(), op)); } if (exampleResolver != null) { builder.withDynamics(exampleResolver); } builder.withModules(ExpressionRegistry.INSTANCE.getAll()); return builder.build(); }
@Override public void apply() { RepositoryLocation absLoc; try { absLoc = operator.getParameterAsRepositoryLocation(key); final RepositoryLocation processLoc = operator.getProcess().getRepositoryLocation().parent(); if (processLoc == null) { SwingTools.showVerySimpleErrorMessage( "quickfix_failed", "Process is not stored in repository."); } else { String relative = absLoc.makeRelative(processLoc); operator.setParameter(key, relative); } } catch (UserError e) { // Should not happen. Parameter should be set, otherwise we would not have created this // prefix. SwingTools.showVerySimpleErrorMessage("quickfix_failed", e.toString()); } }
private void fill(Operator root) { int numTotal = root.getProcess().getRootOperator().getErrorList().size(); errors = root.getErrorList(); String errorString; switch (errors.size()) { case 0: errorString = "No problems found"; break; case 1: errorString = "One potential problem"; break; default: errorString = errors.size() + " potential problems"; break; } if (errors.size() != numTotal) { errorString = errorString + " (" + (numTotal - errors.size()) + " Filtered)"; } headerLabel.setText(errorString); model.fireTableDataChanged(); }