package net.pms.util; import java.io.File; import java.util.regex.Pattern; import net.pms.PMS; import net.pms.dlna.DLNAResource; import org.apache.commons.lang3.StringUtils; public class CodeDb implements DbHandler { public static final String MASTER = "MASTER_CODE"; private FileDb db; public CodeDb() { db = new FileDb(PMS.getConfiguration().getProfileDirectory() + File.separator + name(), this); db.setMinCnt(2); db.init(); } public String getCode(String obj) { for (String key : db.keys()) { if (key.equals(MASTER)) { continue; } if (Pattern.matches(key, obj)) { return key; } } return null; } public String getCode(DLNAResource r) { String res = getCode(r.getName()); if (StringUtils.isEmpty(res)) { res = getCode(r.getSystemName()); } return res; } public String lookup(String key) { return (String) db.get(key); } @Override public Object create(String[] args) { return args[1]; } @Override public String[] format(Object obj) { return new String[]{(String) obj}; } @Override public String name() { return "UMS.code"; } }