package foundation.variant.provider;
|
|
import java.util.Calendar;
|
import java.util.Date;
|
import java.util.HashSet;
|
import java.util.Set;
|
|
public class GlobalVariantProvider implements IVariantsProvider {
|
|
public static String ProviderName = "globalVariant";
|
public static Set<String> VariantNames;
|
private static GlobalVariantProvider instance;
|
|
|
static {
|
VariantNames = new HashSet<String>();
|
initVariantNames();
|
}
|
|
private GlobalVariantProvider() {
|
|
}
|
|
public static GlobalVariantProvider getInstance() {
|
if (instance == null) {
|
instance = new GlobalVariantProvider();
|
}
|
|
return instance;
|
}
|
|
@Override
|
public String getProviderName() {
|
return ProviderName;
|
}
|
|
@Override
|
public VariantProviderType getProviderType() {
|
return VariantProviderType.Persist;
|
}
|
|
@Override
|
public Set<String> getVariantNames() {
|
return VariantNames;
|
}
|
|
@Override
|
public boolean containsVariant(String name) {
|
if (name == null) {
|
return false;
|
}
|
|
name = name.toLowerCase();
|
return VariantNames.contains(name);
|
}
|
|
@Override
|
public Object getVariantValue(DataEvent dataEvent, String name) {
|
if ("newdate".equals(name)) {
|
return new Date();
|
}
|
else if ("newdatetime".equals(name)) {
|
return new Date();
|
}
|
else if ("current.year".equals(name)) {
|
Calendar calendar = Calendar.getInstance();
|
return String.valueOf(calendar.get(Calendar.YEAR));
|
}
|
else if ("current.month".equals(name)) {
|
Calendar calendar = Calendar.getInstance();
|
return String.valueOf(calendar.get(Calendar.MONTH) + 1);
|
}
|
|
return null;
|
}
|
|
public static void initVariantNames() {
|
addOneVariantName("newDate");
|
addOneVariantName("newDateTime");
|
addOneVariantName("current.year");
|
addOneVariantName("current.month");
|
}
|
|
public static void addOneVariantName(String name) {
|
VariantNames.add(name.toLowerCase());
|
}
|
}
|