in client/src/main/java/org/apache/qpid/url/BindingURLParser.java [132:177]
private BindingURLParserState next()
{
switch (_currentParserState)
{
case BINDING_URL_START:
return extractExchangeClass();
case COLON_CHAR:
_index++; //skip ":"
return BindingURLParserState.HIERARCHY_PREFIX;
case HIERARCHY_PREFIX:
return consumeHierarchyPrefix();
case EXCHANGE_NAME:
return extractExchangeName();
case EXCHANGE_SEPERATOR_CHAR:
_index++; // skip '/'
return BindingURLParserState.DESTINATION;
case DESTINATION:
return extractDestination();
case DESTINATION_SEPERATOR_CHAR:
_index++; // skip '/'
return BindingURLParserState.QUEUE_NAME;
case QUEUE_NAME:
return extractQueueName();
case QUESTION_MARK_CHAR:
_index++; // skip '?'
return BindingURLParserState.PROPERTY_NAME;
case PROPERTY_NAME:
return extractPropertyName();
case PROPERTY_EQUALS:
_index++; // skip the equal sign
return BindingURLParserState.START_PROPERTY_VALUE;
case START_PROPERTY_VALUE:
_index++; // skip the '\''
return BindingURLParserState.PROPERTY_VALUE;
case PROPERTY_VALUE:
return extractPropertyValue();
case END_PROPERTY_VALUE:
_index ++;
return checkEndOfURL();
case PROPERTY_SEPARATOR:
_index++; // skip '&'
return BindingURLParserState.PROPERTY_NAME;
default:
return BindingURLParserState.ERROR;
}
}