Java 类org.springframework.util.CompositeIterator 实例源码

项目:spring4-understanding    文件:DefaultListableBeanFactory.java   
@Override
public Iterator<String> getBeanNamesIterator() {
    CompositeIterator<String> iterator = new CompositeIterator<String>();
    iterator.add(this.beanDefinitionNames.iterator());
    iterator.add(this.manualSingletonNames.iterator());
    return iterator;
}
项目:spring    文件:DefaultListableBeanFactory.java   
@Override
public Iterator<String> getBeanNamesIterator() {
    CompositeIterator<String> iterator = new CompositeIterator<String>();
    iterator.add(this.beanDefinitionNames.iterator());
    iterator.add(this.manualSingletonNames.iterator());
    return iterator;
}
项目:Camel    文件:DefaultSqlPrepareStatementStrategy.java   
@SuppressWarnings("unchecked")
protected static CompositeIterator createInParameterIterator(Object value) {
    Iterator it;
    // if the body is a String then honor quotes etc.
    if (value instanceof String) {
        String[] tokens = StringQuoteHelper.splitSafeQuote((String) value, ',', true);
        List<String> list = Arrays.asList(tokens);
        it = list.iterator();
    } else {
        it = ObjectHelper.createIterator(value, null);
    }
    CompositeIterator ci = new CompositeIterator();
    ci.add(it);
    return ci;
}
项目:Camel    文件:DefaultSqlPrepareStatementStrategy.java   
@Override
public void populateStatement(PreparedStatement ps, Iterator<?> iterator, int expectedParams) throws SQLException {
    if (expectedParams <= 0) {
        return;
    }

    final Object[] args = new Object[expectedParams];
    int i = 0;
    int argNumber = 1;

    while (iterator != null && iterator.hasNext()) {
        Object value = iterator.next();

        // special for SQL IN where we need to set dynamic number of values
        if (value instanceof CompositeIterator) {
            Iterator it = (Iterator) value;
            while (it.hasNext()) {
                Object val = it.next();
                LOG.trace("Setting parameter #{} with value: {}", argNumber, val);
                if (argNumber <= expectedParams) {
                    args[i] = val;
                }
                argNumber++;
                i++;
            }
        } else {
            LOG.trace("Setting parameter #{} with value: {}", argNumber, value);
            if (argNumber <= expectedParams) {
                args[i] = value;
            }
            argNumber++;
            i++;
        }
    }
    if (argNumber - 1 != expectedParams) {
        throw new SQLException("Number of parameters mismatch. Expected: " + expectedParams + ", was: " + (argNumber - 1));
    }

    // use argument setter as it deals with various JDBC drivers setObject vs setLong/setInteger/setString etc.
    ArgumentPreparedStatementSetter setter = new ArgumentPreparedStatementSetter(args);
    setter.setValues(ps);
}