package com.owent.xresloader.scheme; import java.util.ArrayList; /** * Created by owentou on 2015/04/29. */ public abstract class SchemeDataSourceBase implements SchemeDataSourceImpl { /** * 设置一项转表配置 * @param key 配置Key * @param datas 配置Value * @return 成功或失败 */ protected boolean set_scheme(String key, ArrayList<String> datas) { while(datas.size() < 3) { datas.add(null); } key = key.trim(); if(key.isEmpty()) { return true; } // 基础配置 if (key.equalsIgnoreCase("DataSource")) { SchemeConf.getInstance().addDataSource(datas.get(0), datas.get(1), datas.get(2)); } else if (key.equalsIgnoreCase("MacroSource")) { SchemeConf.getInstance().addMacroSource(datas.get(0), datas.get(1), datas.get(2)); } // 字段映射配置 else if (key.equalsIgnoreCase("ProtoName")) { SchemeConf.getInstance().setProtoName(datas.get(0)); } else if (key.equalsIgnoreCase("OutputFile")) { SchemeConf.getInstance().setOutputFile(datas.get(0)); } else if (key.equalsIgnoreCase("KeyRow")) { SchemeConf.getInstance().getKey().setRow( datas.get(0).isEmpty()? 0: (int)Math.round(Double.valueOf(datas.get(0))) ); } else if (key.equalsIgnoreCase("KeyCase")) { String letter_case = datas.get(0).toLowerCase(); if (letter_case.equals("大写") || letter_case.equals("upper")) { SchemeConf.getInstance().getKey().setLetterCase(SchemeKeyConf.KeyCase.UPPER); } else if (letter_case.equals("小写") || letter_case.equals("lower")) { SchemeConf.getInstance().getKey().setLetterCase(SchemeKeyConf.KeyCase.LOWER); } else { SchemeConf.getInstance().getKey().setLetterCase(SchemeKeyConf.KeyCase.NONE); } } else if (key.equalsIgnoreCase("KeyWordSplit")) { SchemeConf.getInstance().getKey().setWordSplit(datas.get(0)); } else if (key.equalsIgnoreCase("KeyPrefix")) { SchemeConf.getInstance().getKey().setPrefix(datas.get(0)); } else if (key.equalsIgnoreCase("KeySuffix")) { SchemeConf.getInstance().getKey().setSuffix(datas.get(0)); } else if (key.equalsIgnoreCase("KeyWordRegex")) { SchemeConf.getInstance().getKey().buildKeyWordRegex(datas.get(0)); SchemeConf.getInstance().getKey().buildKeyWordRegexRemoveRule(datas.get(1)); SchemeConf.getInstance().getKey().buildKeyWordRegexPrefixRule(datas.get(2)); } else if (key.equalsIgnoreCase("Encoding")) { SchemeConf.getInstance().getKey().setEncoding(datas.get(0)); } else { return false; } return true; } public boolean isSupportMultipleScheme() { return true; } }