EmailParserFactory.java 800 B

1234567891011121314151617181920212223242526
  1. package com.simuwang.daq.service;
  2. import cn.hutool.core.map.MapUtil;
  3. import org.springframework.stereotype.Component;
  4. import java.util.Map;
  5. @Component
  6. public class EmailParserFactory {
  7. private static final Map<String, AbstractEmailParser> ABSTRACT_PARSER_MAP = MapUtil.newHashMap();
  8. public EmailParserFactory(Map<String, AbstractEmailParser> abstractParserMap) {
  9. ABSTRACT_PARSER_MAP.putAll(abstractParserMap);
  10. }
  11. public AbstractEmailParser getInstance(Integer emailType) {
  12. for (Map.Entry<String, AbstractEmailParser> serviceEntry : ABSTRACT_PARSER_MAP.entrySet()) {
  13. AbstractEmailParser parser = serviceEntry.getValue();
  14. if (parser.isSupport(emailType)) {
  15. return parser;
  16. }
  17. }
  18. return null;
  19. }
  20. }