@Override
public CompositeRoute path(CharSequence path) {
int pathsId = pathCounter.getAndIncrement();
FieldExtractionDefinitions fieldExDef = parser.addPath(path, routeId, pathsId, structId);
activePathFieldIndexPosLookup = new int[fieldExDef.getIndexCount()];
activePathFieldValidator = new Object[fieldExDef.getIndexCount()];
fieldExDef.getFieldParamParser().visitPatterns(modifyStructVisitor);
fieldExDef.setPathFieldLookup(activePathFieldIndexPosLookup, activePathFieldValidator);
config.storeRequestExtractionParsers(pathsId, fieldExDef);
config.storeRequestedJSONMapping(routeId, extractor);
assert(structId == config.getStructIdForRouteId(routeId));
defs.add(fieldExDef);
return this;
}