package com.vn.newsspeak; import java.util.HashMap; import com.vn.newsspeak.parsers.CNNParser; import com.vn.newsspeak.parsers.DailyBeastParser; import com.vn.newsspeak.parsers.EngadgetParser; import com.vn.newsspeak.parsers.HuffPostParser; import com.vn.newsspeak.parsers.LATimesParser; import com.vn.newsspeak.parsers.MashableParser; import com.vn.newsspeak.parsers.NYDailyNewsParser; import com.vn.newsspeak.parsers.NYTimesParser; import com.vn.newsspeak.parsers.ReadWriteWebParser; import com.vn.newsspeak.parsers.TOIParser; import com.vn.newsspeak.parsers.TechCrunchParser; import com.vn.newsspeak.parsers.TheHinduParser; import com.vn.newsspeak.parsers.USATodayParser; import com.vn.newsspeak.parsers.WSJParser; import com.vn.newsspeak.parsers.WashPostParser; public class ArticleParserFactory { private HashMap<String, ArticleParser> articleParserMap; public ArticleParserFactory() { articleParserMap = new HashMap<String, ArticleParser>(); articleParserMap.put("new york times", new NYTimesParser()); articleParserMap.put("huffington post", new HuffPostParser()); articleParserMap.put("wall street journal", new WSJParser()); articleParserMap.put("techcrunch", new TechCrunchParser()); articleParserMap.put("mashable", new MashableParser()); articleParserMap.put("usa today", new USATodayParser()); articleParserMap.put("los angeles times", new LATimesParser()); articleParserMap.put("washington post", new WashPostParser()); articleParserMap.put("ny daily news", new NYDailyNewsParser()); articleParserMap.put("engadget", new EngadgetParser()); articleParserMap.put("readwriteweb", new ReadWriteWebParser()); articleParserMap.put("daily beast", new DailyBeastParser()); articleParserMap.put("cnn us", new CNNParser()); articleParserMap.put("times of india", new TOIParser()); articleParserMap.put("the hindu", new TheHinduParser()); } public ArticleParser getParser(String source) { ArticleParser parser; source = source.toLowerCase(); if ((parser = articleParserMap.get(source)) == null) { return new ArticleParser(); } else { return parser; } } }