All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.antwerkz.sofia.Sofia Maven / Gradle / Ivy

There is a newer version: 0.25
Show newest version
package com.antwerkz.sofia;

import java.io.*;
import java.net.*;
import java.text.*;
import java.util.*;
import java.security.*;
import java.util.ResourceBundle.Control;

import org.slf4j.*;

public class Sofia {
    private static Map messages = new HashMap<>();
    private static final Logger logger = LoggerFactory.getLogger(Sofia.class);

    private static ResourceBundle getBundle(Locale... localeList) {
        Locale locale = localeList.length == 0 ? Locale.getDefault() : localeList[0];
        ResourceBundle labels = loadBundle(locale);
        if(labels == null) {
            labels = loadBundle(Locale.ROOT);
        }
        return labels;
    }

    private static ResourceBundle loadBundle(Locale locale) {
        ResourceBundle bundle = messages.get(locale);
        if(bundle == null) {
            bundle = ResourceBundle.getBundle("sofia", locale );
            messages.put(locale, bundle);
        }
        return bundle;
    }

    private static String getMessageValue(String key, Locale... locale) {
        return (String) getBundle(locale).getObject(key);
    }

    public static String another(Locale... locale) {
        return getMessageValue("@error.another", locale);
    }

    public static void logAnother(Locale... locale) {
        if(logger.isErrorEnabled()) {
            logger.error(another());
        }
    }
    public static String dateProperty(java.util.Date arg0, Number arg1, Locale... locale) {
        return MessageFormat.format(getMessageValue("@error.date.property", locale), arg0, arg1);
    }

    public static void logDateProperty(java.util.Date arg0, Number arg1, Locale... locale) {
        if(logger.isErrorEnabled()) {
            logger.error(dateProperty(arg0, arg1));
        }
    }
    public static String dateProperty2(Object arg0, Object arg1, Locale... locale) {
        return MessageFormat.format(getMessageValue("@error.date.property2", locale), arg0, arg1);
    }

    public static void logDateProperty2(Object arg0, Object arg1, Locale... locale) {
        if(logger.isErrorEnabled()) {
            logger.error(dateProperty2(arg0, arg1));
        }
    }
    public static String me(Locale... locale) {
        return getMessageValue("@warn.me", locale);
    }

    public static void logMe(Locale... locale) {
        if(logger.isWarnEnabled()) {
            logger.warn(me());
        }
    }
    public static String lonely(Locale... locale) {
        return getMessageValue("lonely", locale);
    }

    public static String newProperty(Locale... locale) {
        return getMessageValue("new.property", locale);
    }

    public static String parameterizedPropertyLongName(Object arg0, Object arg1, Locale... locale) {
        return MessageFormat.format(getMessageValue("parameterized.property.long.name", locale), arg0, arg1);
    }

    public static String testProperty(Locale... locale) {
        return getMessageValue("test.property", locale);
    }


}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy