package org.solrmarc.index.extractor;
import java.util.Collection;
import java.util.Collections;
import org.marc4j.marc.Record;
public class MultiValueWrapperSingleValueExtractor extends AbstractMultiValueExtractor implements ExternalMethod
{
private final AbstractSingleValueExtractor wrapped;
public MultiValueWrapperSingleValueExtractor(AbstractSingleValueExtractor toWrap)
{
wrapped = toWrap;
}
@SuppressWarnings("unchecked")
@Override
public Collection<String> extract(Record record) throws Exception
{
final String result = wrapped.extract(record);
if (result == null) return (Collections.EMPTY_LIST);
else return (Collections.singletonList(result));
}
@Override
public boolean isThreadSafe()
{
return (wrapped instanceof ExternalMethod) ? ((ExternalMethod)wrapped).isThreadSafe() : true;
}
@Override
public Object makeThreadSafeCopy()
{
if (wrapped instanceof ExternalMethod)
{
return ((ExternalMethod)wrapped).makeThreadSafeCopy();
}
return(null);
}
}