package com.owent.xresloader.data.vfy; import com.owent.xresloader.ProgramOptions; import java.util.HashMap; import java.util.HashSet; /** * Created by owt50 on 2016/12/7. */ public abstract class DataVerifyImpl { protected HashMap<String, Integer> all_names = new HashMap<String, Integer>(); protected HashSet<Integer> all_numbers = new HashSet<Integer>(); protected String name = ""; protected DataVerifyImpl(String _name) { name = _name; } public int get(int number) { // 0 值永久有效 if (0 == number) { return number; } if (all_numbers.contains(number)) { return number; } ProgramOptions.getLoger().error("%s has no date with number = %d", name, number); return 0; } public int get(String enum_name) { if (null == enum_name || enum_name.isEmpty()) { return 0; } boolean is_int = false; for(int i = 0; i < enum_name.length(); ++ i) { if ((enum_name.charAt(i) >= '0' && enum_name.charAt(i) < '9') || '.' == enum_name.charAt(i)) { is_int = true; } else { is_int = false; break; } } if (is_int) { return get(Double.valueOf(enum_name).intValue()); } Integer ret = all_names.getOrDefault(enum_name, null); if (null == ret) { ProgramOptions.getLoger().error("%s has no date with field name = %s", name, enum_name); return 0; } return ret; } }