@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 Maybe<String> findVariable(String name) { if (page.isRoot()) { // Get variable from return Maybe.noString; } WikiPage parentPage = page.getParent(); if (parentPage instanceof WikitextPage) { return ((WikitextPage) parentPage).getParsingPage().findVariable(name); } else { String value = parentPage.getVariable(name); return value != null ? new Maybe<>(value) : Maybe.noString; } } }
@Override public Maybe<String> findVariable(String name) { if (page.isRoot()) { // Get variable from return Maybe.noString; } WikiPage parentPage = page.getParent(); if (parentPage instanceof WikitextPage) { return ((WikitextPage) parentPage).getParsingPage().findVariable(name); } else { String value = parentPage.getVariable(name); return value != null ? new Maybe<>(value) : Maybe.noString; } } }
@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(); } }