private static List<SummarizerConfiguration> getSummarizerConfigsFiltered( SortedMap<String,String> sprops) { if (sprops.size() == 0) { return Collections.emptyList(); } SummarizerConfiguration.Builder builder = null; List<SummarizerConfiguration> configs = new ArrayList<>(); final int preLen = Property.TABLE_SUMMARIZER_PREFIX.getKey().length(); for (Entry<String,String> entry : sprops.entrySet()) { String k = entry.getKey().substring(preLen); String[] tokens = k.split("\\."); String id = tokens[0]; if (tokens.length == 1) { if (builder != null) { configs.add(builder.build()); } builder = SummarizerConfiguration.builder(entry.getValue()).setPropertyId(id); } else if (tokens.length == 3 || tokens[1].equals("opt")) { builder.addOption(tokens[2], entry.getValue()); } else { throw new IllegalArgumentException("Unable to parse summarizer property : " + k); } } configs.add(builder.build()); return configs; }
private static SummarizerConfiguration readConfig(DataInputStream in) throws IOException { // read summarizer configuration String summarizerClazz = in.readUTF(); String configId = in.readUTF(); // @formatter:off org.apache.accumulo.core.client.summary.SummarizerConfiguration.Builder scb = SummarizerConfiguration.builder(summarizerClazz).setPropertyId(configId); // @formatter:on int numOpts = WritableUtils.readVInt(in); for (int i = 0; i < numOpts; i++) { String k = in.readUTF(); String v = in.readUTF(); scb.addOption(k, v); } return scb.build(); }
public static SummarizerConfiguration fromThrift(TSummarizerConfiguration config) { Builder builder = SummarizerConfiguration.builder(config.getClassname()); builder.setPropertyId(config.getConfigId()); builder.addOptions(config.getOptions()); return builder.build(); } }