use of java.util.Iterator in project camel by apache.
the class PGPDataFormatTest method readSecretKey.
static PGPSecretKey readSecretKey() throws Exception {
InputStream input = new ByteArrayInputStream(getSecKeyRing());
PGPSecretKeyRingCollection pgpSec = new PGPSecretKeyRingCollection(PGPUtil.getDecoderStream(input), new BcKeyFingerprintCalculator());
@SuppressWarnings("rawtypes") Iterator keyRingIter = pgpSec.getKeyRings();
while (keyRingIter.hasNext()) {
PGPSecretKeyRing keyRing = (PGPSecretKeyRing) keyRingIter.next();
@SuppressWarnings("rawtypes") Iterator keyIter = keyRing.getSecretKeys();
while (keyIter.hasNext()) {
PGPSecretKey key = (PGPSecretKey) keyIter.next();
if (key.isSigningKey()) {
return key;
}
}
}
throw new IllegalArgumentException("Can't find signing key in key ring.");
}
use of java.util.Iterator in project camel by apache.
the class ElsqlProducer method process.
@Override
public void process(final Exchange exchange) throws Exception {
final Object data = exchange.getIn().getBody();
final SqlParameterSource param = new ElsqlSqlMapSource(exchange, data);
final String sql = elSql.getSql(elSqlName, new SpringSqlParams(param));
LOG.debug("ElsqlProducer @{} using sql: {}", elSqlName, sql);
// special for processing stream list (batch not supported)
final SqlOutputType outputType = getEndpoint().getOutputType();
if (outputType == SqlOutputType.StreamList) {
processStreamList(exchange, sql, param);
return;
}
log.trace("jdbcTemplate.execute: {}", sql);
jdbcTemplate.execute(sql, param, new PreparedStatementCallback<Object>() {
@Override
public Object doInPreparedStatement(final PreparedStatement ps) throws SQLException, DataAccessException {
ResultSet rs = null;
try {
boolean isResultSet = false;
final int expected = ps.getParameterMetaData().getParameterCount();
if (expected > 0 && batch) {
final String sqlForDefaultPreparedStamentStrategy = sql.replaceAll(":", ":\\?");
final String preparedQuery = sqlPrepareStatementStrategy.prepareQuery(sqlForDefaultPreparedStamentStrategy, getEndpoint().isAllowNamedParameters(), exchange);
final Iterator<?> iterator = exchange.getIn().getBody(Iterator.class);
while (iterator != null && iterator.hasNext()) {
final Object value = iterator.next();
final Iterator<?> i = sqlPrepareStatementStrategy.createPopulateIterator(sqlForDefaultPreparedStamentStrategy, preparedQuery, expected, exchange, value);
sqlPrepareStatementStrategy.populateStatement(ps, i, expected);
ps.addBatch();
}
}
// execute the prepared statement and populate the outgoing message
if (batch) {
final int[] updateCounts = ps.executeBatch();
int total = 0;
for (final int count : updateCounts) {
total += count;
}
exchange.getIn().setHeader(SqlConstants.SQL_UPDATE_COUNT, total);
} else {
isResultSet = ps.execute();
if (isResultSet) {
rs = ps.getResultSet();
// preserve headers first, so we can override the SQL_ROW_COUNT header
exchange.getOut().getHeaders().putAll(exchange.getIn().getHeaders());
final SqlOutputType outputType = getEndpoint().getOutputType();
log.trace("Got result list from query: {}, outputType={}", rs, outputType);
if (outputType == SqlOutputType.SelectList) {
final List<?> data = getEndpoint().queryForList(rs, true);
// for noop=true we still want to enrich with the row count header
if (getEndpoint().isNoop()) {
exchange.getOut().setBody(exchange.getIn().getBody());
} else if (getEndpoint().getOutputHeader() != null) {
exchange.getOut().setBody(exchange.getIn().getBody());
exchange.getOut().setHeader(getEndpoint().getOutputHeader(), data);
} else {
exchange.getOut().setBody(data);
}
exchange.getOut().setHeader(SqlConstants.SQL_ROW_COUNT, data.size());
} else if (outputType == SqlOutputType.SelectOne) {
final Object data = getEndpoint().queryForObject(rs);
if (data != null) {
// for noop=true we still want to enrich with the row count header
if (getEndpoint().isNoop()) {
exchange.getOut().setBody(exchange.getIn().getBody());
} else if (getEndpoint().getOutputHeader() != null) {
exchange.getOut().setBody(exchange.getIn().getBody());
exchange.getOut().setHeader(getEndpoint().getOutputHeader(), data);
} else {
exchange.getOut().setBody(data);
}
exchange.getOut().setHeader(SqlConstants.SQL_ROW_COUNT, 1);
} else {
if (getEndpoint().isNoop()) {
exchange.getOut().setBody(exchange.getIn().getBody());
} else if (getEndpoint().getOutputHeader() != null) {
exchange.getOut().setBody(exchange.getIn().getBody());
}
exchange.getOut().setHeader(SqlConstants.SQL_ROW_COUNT, 0);
}
} else {
throw new IllegalArgumentException("Invalid outputType=" + outputType);
}
} else {
// if we are here, there isResultSet is false. This can happen only if we are doing an update operation or there is no result.
// we can simply add the updateCount in this case.
exchange.getOut().setHeader(SqlConstants.SQL_UPDATE_COUNT, ps.getUpdateCount());
}
}
} finally {
closeResultSet(rs);
}
return null;
}
});
}
use of java.util.Iterator in project antlrworks by antlr.
the class XJMainMenuBar method buildWindowMenu_.
private void buildWindowMenu_() {
Iterator iterator = XJApplication.shared().getWindows().iterator();
int count = 0;
while (iterator.hasNext()) {
XJWindow window = (XJWindow) iterator.next();
if (window.shouldAppearsInWindowMenu()) {
XJMenuItemCheck item = buildMenuItemCheck(window.getTitle(), count < 10 ? KeyEvent.VK_0 + count : -1, MI_WINDOW + count);
item.setSelected(window.isActive());
menuWindow.addItem(item);
count++;
}
}
if (count == 0) {
XJMenuItem item = new XJMenuItem(XJLocalizable.getXJString("NoWindows"), MI_NO_WINDOW, null);
item.setEnabled(false);
menuWindow.addItem(item);
}
}
use of java.util.Iterator in project camel by apache.
the class ExpressionBuilder method skipFirstExpression.
/**
* Returns an expression that skips the first element
*/
public static Expression skipFirstExpression(final Expression expression) {
return new ExpressionAdapter() {
public Object evaluate(Exchange exchange) {
Object value = expression.evaluate(exchange, Object.class);
Iterator it = exchange.getContext().getTypeConverter().tryConvertTo(Iterator.class, exchange, value);
if (it != null) {
// skip first
it.next();
return it;
} else {
return value;
}
}
@Override
public String toString() {
return "skipFirst(" + expression + ")";
}
};
}
use of java.util.Iterator in project camel by apache.
the class UnmarshalProcessor method process.
public boolean process(Exchange exchange, AsyncCallback callback) {
ObjectHelper.notNull(dataFormat, "dataFormat");
InputStream stream = null;
Object result = null;
try {
stream = exchange.getIn().getMandatoryBody(InputStream.class);
// lets setup the out message before we invoke the dataFormat so that it can mutate it if necessary
Message out = exchange.getOut();
out.copyFrom(exchange.getIn());
result = dataFormat.unmarshal(exchange, stream);
if (result instanceof Exchange) {
if (result != exchange) {
// it's not allowed to return another exchange other than the one provided to dataFormat
throw new RuntimeCamelException("The returned exchange " + result + " is not the same as " + exchange + " provided to the DataFormat");
}
} else if (result instanceof Message) {
// the dataformat has probably set headers, attachments, etc. so let's use it as the outbound payload
exchange.setOut((Message) result);
} else {
out.setBody(result);
}
} catch (Throwable e) {
// remove OUT message, as an exception occurred
exchange.setOut(null);
exchange.setException(e);
} finally {
// The Iterator will close the stream itself
if (!(result instanceof Iterator)) {
IOHelper.close(stream, "input stream");
}
}
callback.done(true);
return true;
}
Aggregations