@Override public Maybe<String> findVariable(String name) { for (VariableSource variableSource : variableSources) { if (variableSource != null) { Maybe<String> result = variableSource.findVariable(name); if (!result.isNothing()) return result; } } return Maybe.noString; } }
@Override public Maybe<String> findVariable(String name) { if(variableSource instanceof UrlPathVariableSource){ Maybe<String> result = ((UrlPathVariableSource) variableSource).findUrlVariable(name); if (!result.isNothing()) return result; } return Maybe.noString; } }
@Override public Maybe<String> findVariable(String name) { if(variableSource instanceof UrlPathVariableSource){ Maybe<String> result = ((UrlPathVariableSource) variableSource).findUrlVariable(name); if (!result.isNothing()) return result; } return Maybe.noString; } }
@Override public Maybe<String> findVariable(String name) { for (VariableSource variableSource : variableSources) { if (variableSource != null) { Maybe<String> result = variableSource.findVariable(name); if (!result.isNothing()) return result; } } return Maybe.noString; } }
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; } }
private void selectLocale() { if(formatLocale.isNothing() || formatLocale.getValue().isEmpty()) { locale = Locale.getDefault(); } else { locale = Locale.forLanguageTag(formatLocale.getValue()); } }
private void selectLocale() { if(formatLocale.isNothing() || formatLocale.getValue().isEmpty()) { locale = Locale.getDefault(); } else { locale = Locale.forLanguageTag(formatLocale.getValue()); } }
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 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; } }
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 Maybe<Symbol> parse(Symbol current, Parser parser) { if (current.getStartOffset() != 0) return Symbol.nothing; final Symbol frontMatter = parser.parseToWithSymbols(CloseFrontMatter.symbolType, SYMBOL_PROVIDER, 0); if (!parser.getCurrent().isType(CloseFrontMatter.symbolType)) return Symbol.nothing; Maybe<Symbol> yaml = processYaml(current, frontMatter); if (yaml.isNothing()) { return Symbol.nothing; } return new Maybe<>(current); }
@Override public Maybe<Symbol> parse(Symbol current, Parser parser) { if (current.getStartOffset() != 0) return Symbol.nothing; final Symbol frontMatter = parser.parseToWithSymbols(CloseFrontMatter.symbolType, SYMBOL_PROVIDER, 0); if (!parser.getCurrent().isType(CloseFrontMatter.symbolType)) return Symbol.nothing; Maybe<Symbol> yaml = processYaml(current, frontMatter); if (yaml.isNothing()) { return Symbol.nothing; } return new Maybe<>(current); }
@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; } }