in asterix-bad/src/main/java/org/apache/asterix/bad/lang/BADQueryTranslator.java [181:210]
protected void handleCreateFeedStatement(MetadataProvider metadataProvider, Statement stmt) throws Exception {
CreateFeedStatement cfs = (CreateFeedStatement) stmt;
Map<String, String> feedConfig = cfs.getConfiguration();
if (feedConfig.containsKey(BADConstants.BAD_FEED_FIELD_NAME_HOST)) {
// check parameters
if (!feedConfig.containsKey(BADConstants.BAD_FEED_FIELD_NAME_HOST)
|| !feedConfig.containsKey(BADConstants.BAD_FEED_FIELD_NAME_CHANNEL)
|| !feedConfig.containsKey(BADConstants.BAD_FEED_FIELD_NAME_PARAMETERS)
|| !feedConfig.containsKey(BADConstants.BAD_FEED_FIELD_NAME_CHANNEL_DV)) {
throw new AlgebricksException(
"A BAD feed requires the host, dataverse name, channel name, and channel parameters of the other BAD system.");
}
// check format and http feed
if (!feedConfig.containsKey(ExternalDataConstants.KEY_ADAPTER_NAME)
|| !feedConfig.get(ExternalDataConstants.KEY_ADAPTER_NAME).toLowerCase().equals("http_adapter")) {
throw new AlgebricksException("A BAD feed needs a http adapter.");
}
if (!feedConfig.containsKey(ExternalDataConstants.KEY_FORMAT)
|| !feedConfig.get(ExternalDataConstants.KEY_FORMAT).toLowerCase().equals("adm")) {
throw new AlgebricksException("A BAD feed requires incoming data to be in ADM format.");
}
if (!feedConfig.containsKey(ExternalDataConstants.KEY_MODE)
|| !feedConfig.get(ExternalDataConstants.KEY_MODE).toLowerCase().equals("ip")) {
throw new AlgebricksException("A BAD feed requires an IP address.");
}
}
super.handleCreateFeedStatement(metadataProvider, stmt);
}