/** * Add many options to the iterator. * * @param properties * a map of entries to add to the options */ public void addOptions(Map<String,String> properties) { checkArgument(properties != null, "properties is null"); addOptions(properties.entrySet()); }
@Override protected void setTableProperties(final CommandLine cl, final Shell shellState, final int priority, final Map<String,String> options, final String classname, final String name) throws AccumuloException, AccumuloSecurityException, ShellCommandException, TableNotFoundException { // instead of setting table properties, just put the options in a list to use at scan time String profile = cl.getOptionValue(profileOpt.getOpt()); // instead of setting table properties, just put the options in a list to use at scan time for (Iterator<Entry<String,String>> i = options.entrySet().iterator(); i.hasNext();) { final Entry<String,String> entry = i.next(); if (entry.getValue() == null || entry.getValue().isEmpty()) { i.remove(); } } List<IteratorSetting> tableScanIterators = shellState.iteratorProfiles.get(profile); if (tableScanIterators == null) { tableScanIterators = new ArrayList<>(); shellState.iteratorProfiles.put(profile, tableScanIterators); } final IteratorSetting setting = new IteratorSetting(priority, name, classname); setting.addOptions(options); Iterator<IteratorSetting> iter = tableScanIterators.iterator(); while (iter.hasNext()) { if (iter.next().getName().equals(name)) { iter.remove(); } } tableScanIterators.add(setting); }
/** * Constructs an iterator setting configured for the specified scopes with the specified * parameters. * * @param priority * the priority for the iterator (see {@link #setPriority(int)}) * @param name * the distinguishing name for the iterator * @param iteratorClass * the fully qualified class name for the iterator * @param properties * any properties for the iterator */ public IteratorSetting(int priority, String name, String iteratorClass, Map<String,String> properties) { setPriority(priority); setName(name); setIteratorClass(iteratorClass); this.properties = new HashMap<>(); addOptions(properties); }
@Override public List<IteratorSetting> getIterators() { ArrayList<IteratorSetting> ret = new ArrayList<>(); for (IterInfo ii : tac.getSsiList()) { IteratorSetting settings = new IteratorSetting(ii.getPriority(), ii.getIterName(), ii.getClassName()); Map<String,String> options = tac.getSsio().get(ii.getIterName()); settings.addOptions(options); ret.add(settings); } return ret; } }
setting.addOptions(options);
/** * Add many options to the iterator. * * @param properties * a map of entries to add to the options */ public void addOptions(Map<String,String> properties) { checkArgument(properties != null, "properties is null"); addOptions(properties.entrySet()); }
@Override protected void setTableProperties(final CommandLine cl, final Shell shellState, final int priority, final Map<String,String> options, final String classname, final String name) throws AccumuloException, AccumuloSecurityException, ShellCommandException, TableNotFoundException { // instead of setting table properties, just put the options in a list to use at scan time String profile = cl.getOptionValue(profileOpt.getOpt()); // instead of setting table properties, just put the options in a list to use at scan time for (Iterator<Entry<String,String>> i = options.entrySet().iterator(); i.hasNext();) { final Entry<String,String> entry = i.next(); if (entry.getValue() == null || entry.getValue().isEmpty()) { i.remove(); } } List<IteratorSetting> tableScanIterators = shellState.iteratorProfiles.get(profile); if (tableScanIterators == null) { tableScanIterators = new ArrayList<>(); shellState.iteratorProfiles.put(profile, tableScanIterators); } final IteratorSetting setting = new IteratorSetting(priority, name, classname); setting.addOptions(options); Iterator<IteratorSetting> iter = tableScanIterators.iterator(); while (iter.hasNext()) { if (iter.next().getName().equals(name)) { iter.remove(); } } tableScanIterators.add(setting); }
public Collection<IteratorSetting> getIterators() { Collection<IteratorSetting> settings = Lists.newArrayList(); for (IterInfo iter : serverSideIteratorList) { IteratorSetting setting = new IteratorSetting(iter.getPriority(), iter.getIterName(), iter.getClassName()); setting.addOptions(serverSideIteratorOptions.get(iter.getIterName())); settings.add(setting); } return settings; } }
/** For use as a Combiner. Pass columns as null or empty to combine on all columns. */ public static IteratorSetting combinerSetting(int priority, List<IteratorSetting.Column> columns, ScalarOp op, ScalarType type, boolean keepZero) { IteratorSetting itset = new IteratorSetting(priority, MathTwoScalar.class); if (columns == null || columns.isEmpty()) Combiner.setCombineAllColumns(itset, true); else Combiner.setColumns(itset, columns); itset.addOptions(optionMap(op, type, null, keepZero)); // no newVisibility needed for Combiner usage return itset; }
/** * Constructs an iterator setting configured for the specified scopes with the specified * parameters. * * @param priority * the priority for the iterator (see {@link #setPriority(int)}) * @param name * the distinguishing name for the iterator * @param iteratorClass * the fully qualified class name for the iterator * @param properties * any properties for the iterator */ public IteratorSetting(int priority, String name, String iteratorClass, Map<String,String> properties) { setPriority(priority); setName(name); setIteratorClass(iteratorClass); this.properties = new HashMap<>(); addOptions(properties); }
@Override public List<IteratorSetting> getIterators() { ArrayList<IteratorSetting> ret = new ArrayList<>(); for (IterInfo ii : tac.getSsiList()) { IteratorSetting settings = new IteratorSetting(ii.getPriority(), ii.getIterName(), ii.getClassName()); Map<String,String> options = tac.getSsio().get(ii.getIterName()); settings.addOptions(options); ret.add(settings); } return ret; } }
setting.addOptions(options);
/** * @param queryTree * @param rangeIter * @param settings * @param columnFamilies */ public QueryPlan(JexlNode queryTree, Iterable<Range> rangeIter, List<IteratorSetting> settings, Collection<String> columnFamilies) { this.queryTree = queryTree; this.ranges = Lists.newArrayList(rangeIter); for (IteratorSetting setting : settings) { IteratorSetting newSetting = new IteratorSetting(setting.getPriority(), setting.getName(), setting.getIteratorClass()); newSetting.addOptions(setting.getOptions()); if (newSetting.getOptions().containsKey(QueryIterator.QUERY)) { newSetting.addOption(QueryIterator.QUERY, JexlStringBuildingVisitor.buildQuery(queryTree)); } this.settings.add(newSetting); } if (null != columnFamilies) this.columnFamilies.addAll(columnFamilies); buildHashCode(); }
newSetting.addOptions(setting.getOptions()); if (iterClazz.equals(QueryIterator.class.getCanonicalName()) || iterClazz.equals(TLDQueryIterator.class.getCanonicalName())) { querySettings = setting; newSetting.addOptions(setting.getOptions()); if (iterClazz.equals(QueryIterator.class.getCanonicalName()) || iterClazz.equals(TLDQueryIterator.class.getCanonicalName())) { if (iterClazz.equals(QueryIterator.class.getCanonicalName())) {
IteratorSetting newIteratorSetting = new IteratorSetting(setting.getPriority(), setting.getName(), setting.getIteratorClass()); newIteratorSetting.addOptions(setting.getOptions()); try {