package org.solrmarc.index.extractor.impl.date;
import org.solrmarc.index.extractor.AbstractValueExtractor;
import org.solrmarc.index.extractor.AbstractValueExtractorFactory;
public class DateValueExtractorFactory extends AbstractValueExtractorFactory
{
@Override
public boolean canHandle(final String solrFieldName, final String mappingConfiguration)
{
final String mapping = mappingConfiguration.toLowerCase();
return mapping.startsWith("date".toLowerCase()) || mapping.startsWith("dateOfPublication".toLowerCase())
|| mapping.startsWith("dateRecordIndexed".toLowerCase())
|| mapping.startsWith("index_date".toLowerCase());
}
public AbstractValueExtractor<?> createExtractor(final String solrFieldName, final String mapping)
{
if (mapping.toLowerCase().startsWith("daterecordindexed") || mapping.toLowerCase().startsWith("index_date"))
{
return new DateRecordIndexedValueExtractor();
}
else if (mapping.toLowerCase().startsWith("date") || mapping.toLowerCase().startsWith("dateOfPublication"))
{
return new DateOfPublicationValueExtractor();
}
throw new IllegalArgumentException("Unknown impl configuration: " + solrFieldName + " = " + mapping);
}
@Override
public AbstractValueExtractor<?> createExtractor(final String solrFieldName, final String[] parts)
{
return createExtractor(solrFieldName, parts[0]);
}
}