public String replace(String str) { Matcher m = variablePattern.matcher(str); while (m.find()) { String var = m.group(); Maybe<String> value = variableSource.findVariable(var.substring(2, var.length() - 1)); if (!value.isNothing()) { str = str.replace(var, value.getValue()); } } return str; } }
public String replace(String str) { Matcher m = variablePattern.matcher(str); while (m.find()) { String var = m.group(); Maybe<String> value = variableSource.findVariable(var.substring(2, var.length() - 1)); if (!value.isNothing()) { str = str.replace(var, value.getValue()); } } return str; } }
public void evaluateVariables(String[] names, VariableSource source) { if (variables == null) variables = new HashMap<>(names.length); for (String name: names) { Maybe<String> value = source.findVariable(name); if (!value.isNothing()) variables.put(name, value.getValue()); } }
@Override public WikiPage makePage(final File path, final String pageName, final WikiPage parent, final VariableSource variableSource) { Maybe<String> rootPath = variableSource.findVariable("FITNESSE_ROOTPATH"); return new WikiFilePage(path, pageName.substring(0, pageName.length() - WikiFilePage.FILE_EXTENSION.length()), parent, null, versionsController, new FileSystemSubWikiPageFactory(new File(rootPath.getValue()), fileSystem, variableSource, FileSystemPageFactory.this), variableSource); }
@Override public WikiPage makePage(final File path, final String pageName, final WikiPage parent, final VariableSource variableSource) { Maybe<String> rootPath = variableSource.findVariable("FITNESSE_ROOTPATH"); return new WikiFilePage(new File(path, WikiFilePage.ROOT_FILE_NAME), pageName, parent, null, versionsController, new FileSystemSubWikiPageFactory(new File(rootPath.getValue()), fileSystem, variableSource, FileSystemPageFactory.this), variableSource); }
@Override public WikiPage makePage(final File path, final String pageName, final WikiPage parent, final VariableSource variableSource) { Maybe<String> rootPath = variableSource.findVariable("FITNESSE_ROOTPATH"); return new WikiFilePage(new File(path, WikiFilePage.ROOT_FILE_NAME), pageName, parent, null, versionsController, new FileSystemSubWikiPageFactory(new File(rootPath.getValue()), fileSystem, variableSource, FileSystemPageFactory.this), variableSource); }
@Override public WikiPage makePage(final File path, final String pageName, final WikiPage parent, final VariableSource variableSource) { Maybe<String> rootPath = variableSource.findVariable("FITNESSE_ROOTPATH"); return new FileSystemPage(path, pageName, parent, null, versionsController, new FileSystemSubWikiPageFactory(new File(rootPath.getValue()), fileSystem, variableSource, FileSystemPageFactory.this), variableSource); }
@Override public SymbolType isApplicable(Translator translator){ Maybe<String> testSystem = Maybe.noString; if(translator instanceof HtmlTranslator){ testSystem = ((HtmlTranslator) translator).getParsingPage().findVariable("TEST_SYSTEM"); } if(testSystem.isNothing() || !"slim".equals(testSystem.getValue())) { return baseSymbolType; } return this; } }
@Override public SymbolType isApplicable(Translator translator){ Maybe<String> testSystem = Maybe.noString; if(translator instanceof HtmlTranslator){ testSystem = ((HtmlTranslator) translator).getParsingPage().findVariable("TEST_SYSTEM"); } if(testSystem.isNothing() || !"slim".equals(testSystem.getValue())) { return baseSymbolType; } return this; } }
@Override public WikiPage makePage(final File path, final String pageName, final WikiPage parent, final VariableSource variableSource) { Maybe<String> rootPath = variableSource.findVariable("FITNESSE_ROOTPATH"); return new WikiFilePage(wikiFile(path), pageName, parent, null, versionsController, new FileSystemSubWikiPageFactory(new File(rootPath.getValue()), fileSystem, variableSource, FileSystemPageFactory.this), variableSource); }
@Override public WikiPage makePage(final File path, final String pageName, final WikiPage parent, final VariableSource variableSource) { Maybe<String> rootPath = variableSource.findVariable("FITNESSE_ROOTPATH"); return new WikiFilePage(wikiFile(path), pageName, parent, null, versionsController, new FileSystemSubWikiPageFactory(new File(rootPath.getValue()), fileSystem, variableSource, FileSystemPageFactory.this), variableSource); }
public Maybe<Integer> makeMatch(ScanString input, SymbolStream symbols) { int totalLength = 0; for (ScanMatch match: matches) { Maybe<Integer> matchLength = match.match(input, symbols, totalLength); if (matchLength.isNothing()) return Maybe.noInteger; totalLength += matchLength.getValue(); } return new Maybe<>(totalLength); }
@Override public SymbolMatch makeMatch(ScanString input, SymbolStream symbols) { for (Matcher matcher: getWikiMatchers()) { Maybe<Integer> matchLength = matcher.makeMatch(input, symbols); if (!matchLength.isNothing()) return new SymbolMatch(this, input, matchLength.getValue()); } return SymbolMatch.noMatch; }
@Override public String getVariable(String name) { ParsingPage parsingPage = getParsingPage(); Maybe<String> variable = parsingPage.findVariable(name); if (variable.isNothing()) return null; Parser parser = Parser.make(parsingPage, "", SymbolProvider.variableDefinitionSymbolProvider); return new HtmlTranslator(null, parsingPage).translate(parser.parseWithParent(variable.getValue(), null)); }
@Override public String getVariable(String name) { ParsingPage parsingPage = getParsingPage(); Maybe<String> variable = parsingPage.findVariable(name); if (variable.isNothing()) return null; Parser parser = Parser.make(parsingPage, "", SymbolProvider.variableDefinitionSymbolProvider); return new HtmlTranslator(null, parsingPage).translate(parser.parseWithParent(variable.getValue(), null)); }
@Override public String toTarget(Translator translator, Symbol symbol) { String body = translator.translate(symbol.childAt(0)); Maybe<String> formatLocale = Maybe.noString; if(translator instanceof HtmlTranslator){ formatLocale = ((HtmlTranslator) translator).getParsingPage().findVariable("FORMAT_LOCALE"); } Maybe<String> result = new FormattedExpression(body, formatLocale).evaluate(); if (result.isNothing()) return translator.formatMessage(result.because()); return result.getValue(); } }
@Override public String toTarget(Translator translator, Symbol symbol) { String body = translator.translate(symbol.childAt(0)); Maybe<String> formatLocale = Maybe.noString; if(translator instanceof HtmlTranslator){ formatLocale = ((HtmlTranslator) translator).getParsingPage().findVariable("FORMAT_LOCALE"); } Maybe<String> result = new FormattedExpression(body, formatLocale).evaluate(); if (result.isNothing()) return translator.formatMessage(result.because()); return result.getValue(); } }
@Override public Maybe<Symbol> parse(Symbol current, Parser parser) { Symbol next = parser.moveNext(1); if (next.isType(WikiWord.symbolType)) { return new Maybe<>(current.add(next)); } if (next.isType(Alias.symbolType)) { Maybe<Symbol> alias = next.getType().getWikiRule().parse(next, parser); if (!alias.isNothing()) return new Maybe<>(current.add(alias.getValue())); } return Symbol.nothing; } }