package org.apache.solr.analysis; import java.util.Map; import org.apache.lucene.analysis.TokenStream; import org.apache.lucene.analysis.util.TokenFilterFactory; public class ResetFilterFactory extends TokenFilterFactory { private String incomingType; private Integer posIncrement; private String outgoingType; private int[] range; private String prefix; public ResetFilterFactory(Map<String, String> args) { super(args); incomingType = null; if (args.containsKey("incomingType")) { incomingType = args.remove("incomingType"); if (incomingType.equals("null")) incomingType=null; } posIncrement = null; if (args.containsKey("posIncrement")) { posIncrement = Integer.parseInt((String)args.remove("posIncrement")); } outgoingType = null; if (args.containsKey("outgoingType")) { outgoingType = (String) args.remove("outgoingType"); } range = new int[]{0, Integer.MAX_VALUE}; if (args.containsKey("range")) { String r = (String) args.remove("range"); int i = 0; for (String x: r.split(",")) { range[i++] = Integer.parseInt(x); } } prefix = null; if (args.containsKey("addPrefix")) { prefix = (String) args.remove("addPrefix"); } if (!args.isEmpty()) { throw new IllegalArgumentException("Unknown parameter(s): " + args); } } /* (non-Javadoc) * @see org.apache.solr.analysis.TokenFilterFactory#create(org.apache.lucene.analysis.TokenStream) */ public ResetFilter create(TokenStream input) { return new ResetFilter(input, incomingType, posIncrement, outgoingType, range, prefix); } }