![JAR search and dependency download from the Maven repository](/logo.png)
net.apexes.commons.i18n.EnumMsg Maven / Gradle / Ivy
The newest version!
/*
* Copyright (c) 2018, apexes.net. All rights reserved.
*
* http://www.apexes.net
*
*/
package net.apexes.commons.i18n;
import net.apexes.commons.lang.Enume;
import java.util.Enumeration;
import java.util.Locale;
/**
*
* @author HeDYn
*
*/
public final class EnumMsg {
private final I18nMsg msg;
public EnumMsg(I18nResource resource) {
msg = new I18nMsg(resource);
}
public EnumMsg(I18nResource resource, I18nMsg.Logger logger) {
msg = new I18nMsg(resource, logger);
}
public Locale getLocale() {
return msg.getLocale();
}
public Enumeration getKeys() {
return msg.getKeys();
}
public boolean containsKey(String key) {
return msg.containsKey(key);
}
public String getMessage(String key) {
return msg.getMessage(key, key);
}
public String getMessage(String key, String defaultValue) {
return msg.getMessage(key, defaultValue);
}
public String formatKey(String key, Object... params) {
return msg.formatKey(key, params);
}
/**
* 返回枚举的名称
* @param theEnum 枚举对象
* @return 返回枚举的名称
*/
public String getEnumName(Enum> theEnum) {
if (theEnum == null) {
return null;
}
return getEnumName(theEnum, theEnum.name());
}
public String getEnumName(Enum> theEnum, String defaultValue) {
return msg.getMessage(getEnumKey(theEnum), defaultValue);
}
/**
* 返回 {@link Enume} 的名称。类内部定义的枚举则key中包含该类的名称
* @param theEnume 枚举对象
* @return 返回 {@link Enume} 的名称
*/
public > String getEnumName(T theEnume) {
if (theEnume == null) {
return null;
}
return getEnumName(theEnume, enumNameOrValue(theEnume));
}
public > String getEnumName(T theEnume, String defaultValue) {
return msg.getMessage(getEnumKey(theEnume), defaultValue);
}
public static String getEnumKey(Enum> theEnum) {
Class> enumClass = theEnum.getClass();
if (enumClass.isMemberClass()) {
return enumClass.getDeclaringClass().getSimpleName()
+ "." + enumClass.getSimpleName()
+ "." + theEnum.name();
}
return enumClass.getSimpleName() + "." + theEnum.name();
}
public static > String getEnumKey(T theEnume) {
Class> enumClass = theEnume.getClass();
String enumeName = enumNameOrValue(theEnume);
if (enumClass.isMemberClass()) {
return enumClass.getDeclaringClass().getSimpleName()
+ "." + enumClass.getSimpleName()
+ "." + enumeName;
}
return enumClass.getSimpleName() + "." + enumeName;
}
private static > String enumNameOrValue(T theEnume) {
String enumeName = theEnume.name();
if (enumeName == null) {
enumeName = String.valueOf(theEnume.value());
}
return enumeName;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy