package org.solrmarc.index.extractor.impl.patternMapping; import java.util.*; import org.solrmarc.index.extractor.AbstractValueExtractor; import org.solrmarc.index.extractor.AbstractValueExtractorFactory; public class PatternMappingValueExtractorFactory extends AbstractValueExtractorFactory { private static final Map<String, List<PatternMapping>> PATTERN_MAPPINGS = new HashMap<>(); public static List<PatternMapping> getPatternMappingsForName(String name) { List<PatternMapping> mappings = PATTERN_MAPPINGS.get(name); if (mappings == null) { mappings = new ArrayList<>(); PATTERN_MAPPINGS.put(name, mappings); } return mappings; } @Override public boolean canHandle(final String solrFieldName, final String mappingConfiguration) { final boolean isPatternMap = solrFieldName.startsWith("pattern_map."); final int index = solrFieldName.indexOf(".pattern_"); if (!isPatternMap) { return false; } else if (index == -1 || !Character.isDigit(solrFieldName.charAt(index + ".pattern_".length()))) { throw new IllegalArgumentException( "A pattern impl name should end with '.pattern_[index]', where '[index]' is a number: " + solrFieldName + " = " + mappingConfiguration); } return true; } @Override public AbstractValueExtractor<?> createExtractor(String solrFieldName, String[] parts) { // TODO Auto-generated method stub return null; } }