class i18nStatistic implements Statistic {

    private String resourceKey;
    private String pluginName;
    private Type statisticType;

    public i18nStatistic(String resourceKey, Statistic.Type statisticType) {
        this(resourceKey, null, statisticType);
    }

    public i18nStatistic(String resourceKey, String pluginName, Statistic.Type statisticType) {
        this.resourceKey = resourceKey;
        this.pluginName = pluginName;
        this.statisticType = statisticType;
    }

    @Override
    public final String getName() {
        return retrieveValue("name");
    }

    @Override
    public final Type getStatType() {
        return statisticType;
    }

    @Override
    public final String getDescription() {
        return retrieveValue("desc");
    }

    @Override
    public final String getUnits() {
        return retrieveValue("units");
    }

    private String retrieveValue(String key) {<FILL_FUNCTION_BODY>}
}

        String wholeKey = "stat." + resourceKey + "." + key;
        if (pluginName != null) {
            return LocaleUtils.getLocalizedString(wholeKey, pluginName);
        }
        else {
            return LocaleUtils.getLocalizedString(wholeKey);
        }
    
<no_super_class>