public Source (int id, String className, String crawlMode, Map<String,Object> srcData) throws IOException {
this.srcData = srcData;
this.memLog = new StringBuffer();
params = new XMLConfig();
params.loadString((String)srcData.get("params"));
extra = new XMLConfig();
extra.loadString((String)srcData.get("extra"));
this.id = id;
this.className = className;
this.crawlMode = crawlMode;
this.depth = getSrcDataInt("crawl_maxdepth", 0);
processingElapsedTime = 0;
processingLastTime = new Date().getTime();
processingLastProcessedPageCount = 0;
processingInfo = new XMLConfig();
processingInfo.loadString((String)srcData.get("processing_info"));
if (processingInfo!=null) {
String elapsedTime = processingInfo.getProperty("/infos/elapsedtime");
if (elapsedTime!=null && Utils.isStringNumeric(elapsedTime))
processingElapsedTime = Long.parseLong(processingInfo.getProperty("/infos/elapsedtime"));