@Override public SortedKeyValueIterator<Key, Value> deepCopy(IteratorEnvironment env) { ValueSummingIterator iterator = new ValueSummingIterator(); iterator.encoder = encoder; iterator.hasTop = true; iterator.sum = sum; iterator.type = type; switch (Type.valueOf(type)) { case VARLEN: iterator.encoder = VAR_LEN_ENCODER; break; case FIXEDLEN: iterator.encoder = FIXED_LEN_ENCODER; break; case STRING: iterator.encoder = STRING_ENCODER; break; } return iterator; }
@Override public boolean validateOptions(Map<String, String> options) { try { this.type = options.get(TYPE); if (type == null) { throw new IllegalArgumentException("no type specified"); } switch (Type.valueOf(type)) { case VARLEN: this.encoder = VAR_LEN_ENCODER; break; case FIXEDLEN: this.encoder = FIXED_LEN_ENCODER; break; case STRING: this.encoder = STRING_ENCODER; break; } } catch (Exception e) { throw new IllegalArgumentException("bad encoder option", e); } return true; }
/** * A convenience method for setting the long encoding type. * * @param is IteratorSetting object to configure. * @param type LongCombiner.Type specifying the encoding type. */ public static void setEncodingType(IteratorSetting is, Type type) { is.addOption(TYPE, type.toString()); }