use of tools.utils.TagValue.NestedTagValue in project AuthMeReloaded by AuthMe.
the class TranslationPageGenerator method executeDefault.
@Override
public void executeDefault() {
TranslationsGatherer gatherer = new TranslationsGatherer();
NestedTagValue translationValuesHolder = new NestedTagValue();
for (TranslationInfo translation : gatherer.getTranslationInfo()) {
int percentage = (int) Math.round(translation.percentTranslated * 100);
String name = firstNonNull(LANGUAGE_NAMES.get(translation.code), "?");
TagValueHolder valueHolder = TagValueHolder.create().put("code", translation.code).put("name", name).put("percentage", Integer.toString(percentage)).put("color", computeColor(percentage));
translationValuesHolder.add(valueHolder);
}
TagValueHolder tags = TagValueHolder.create().put("languages", translationValuesHolder);
FileIoUtils.generateFileFromTemplate(TEMPLATE_FILE, DOCS_PAGE, tags);
System.out.println("Wrote to '" + DOCS_PAGE + "'");
}
use of tools.utils.TagValue.NestedTagValue in project AuthMeReloaded by AuthMe.
the class TagReplacer method applyReplacements.
/**
* Replace a template with default tags and custom ones supplied by a map.
*
* @param template The template to process
* @param tagValues Container with tags and their associated values
* @return The filled template
*/
public static String applyReplacements(String template, TagValueHolder tagValues) {
String result = template;
for (Map.Entry<String, TagValue<?>> tagRule : tagValues.getValues().entrySet()) {
final String name = tagRule.getKey();
if (tagRule.getValue() instanceof TextTagValue) {
final TextTagValue value = (TextTagValue) tagRule.getValue();
result = replaceOptionalTag(result, name, value).replace("{" + name + "}", value.getValue());
} else if (tagRule.getValue() instanceof NestedTagValue) {
final NestedTagValue value = (NestedTagValue) tagRule.getValue();
result = replaceIterateTag(replaceOptionalTag(result, name, value), name, value);
} else {
throw new IllegalStateException("Unknown tag value type");
}
}
return applyReplacements(result);
}
Aggregations