package com.csc.library.modecontroller;

import java.io.File;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.jdom.Element;

import com.csc.library.command.CscCommand;
import com.csc.library.request.CMDMode;
import com.csc.library.request.RequestParameter;
import com.csc.library.utilities.MyLog;
import com.csc.library.utilities.ReadXml;

public class ManageCommonMode extends AbsModeManagement{
	
	private Map<String,String> map = new HashMap<String,String>();
	protected CMDMode mode = CMDMode.common;
	@Override
	public void load(String path) {
		try{
			File fileDir = new File(path + mode.toString());
			if(fileDir.isDirectory()){
				File[] listFile = fileDir.listFiles();
				for(File f : listFile){
					ReadXml rm = new ReadXml( f.getPath() , false);
					Element eRoot = rm.getRootElement();
					List childs = eRoot.getChildren();
					for( int i = 0 ; i < childs.size() ; i++ ){
						Element child = (Element)childs.get(i);
						this.map.put(mode.toString()+"-"+child.getAttributeValue("name") , mode.toString()+"."+child.getAttributeValue("classname"));
					}
				}
			}
		}catch(Exception ex){
			MyLog.error(this , ex);
		}
	}

	@Override
	public String getClassName(String code) {
		return this.map.get(mode.toString()+"-"+code);
	}

	@Override
	public Map<String, String> getParamConfig(String code) {
		return null;
	}

	@Override
	public void execute(CscCommand command, RequestParameter reqParam) throws Exception {
		command.execute(reqParam.getCommonParameter());
	}
}