code: private <L extends Collection<JQLPlaceHolder>> L extractPlaceHoldersFromVariableStatement(final JQLContext jqlContext, String jql, final L result) {
  		final One<Boolean> valid = new One<>();
  
  		if (!StringUtils.hasText(jql))
  			return result;
  
  		valid.value0 = false;
  
  		analyzeVariableStatementInternal(jqlContext, jql, new JqlBaseListener() {
  
  			@Override
  			public void enterBind_parameter(Bind_parameterContext ctx) {
  				String parameter;
  				if (ctx.bind_parameter_name() != null) {
  					parameter = ctx.bind_parameter_name().getText();
  				} else {
  					parameter = ctx.getText();
  				}
  				result.add(new JQLPlaceHolder(JQLPlaceHolderType.PARAMETER, parameter));
  			}
  
  			@Override
  			public void enterBind_dynamic_sql(Bind_dynamic_sqlContext ctx) {
  				result.add(new JQLPlaceHolder(JQLPlaceHolderType.DYNAMIC_SQL, ctx.bind_parameter_name().getText()));
  			}
  
  		});
  		return result;
  	}
docs: Extract place holders from variable statement.
  
  @param <L>
  the generic type
  @param jqlContext
  the jql context
  @param jql
  the jql
  @param result
  the result
  @return the l