public Parameter getParameter(String name, ParameterDataType dataType, String defaultValue, ParameterCollectionType collectionType){ Parameter p = new Parameter(name); p.setDataType(dataType); p.setCollectionType(collectionType); p.setDisplayName("param display name"); if (collectionType.equals(ParameterCollectionType.MULTIPLE)){ p.setDefaultValue(defaultValue.split(",")); }else { p.setDefaultValue(new String[]{defaultValue}); } return p; }
@Override public String apply(Parameter parameter) { return parameter.getName(); } }));
/** * Given a saved query, this method extrapolates the parameter values (using the parameter definition) * and returns it as a multivalued map * * @param savedQuery * @return multivalued map containing parameter values */ private static MultivaluedMap<String, String> extrapolateSampleParamValues(SavedQuery savedQuery) { final MultivaluedHashMap<String, String> paramValues = new MultivaluedHashMap<>(); for(Parameter parameter : savedQuery.getParameters()) { final String sampleValue = ParameterDataTypeEncoder.valueOf(parameter.getDataType().toString()).getSampleValue(); if (parameter.getCollectionType() == ParameterCollectionType.SINGLE) { paramValues.putSingle( parameter.getName(), sampleValue ); } else if (parameter.getCollectionType() == ParameterCollectionType.MULTIPLE) { paramValues.put( parameter.getName(), Lists.newArrayList(sampleValue, sampleValue) ); } } return paramValues; }
/** * Extracts the default parameter values from the saved query * * @param query * @return multivalued map of parameter values */ public static MultivaluedMap<String, String> getDefaultParameterValues(SavedQuery query) { final MultivaluedMap<String, String> defaults = new MultivaluedHashMap<>(); for(Parameter parameter: query.getParameters()) { String[] defaultValues = parameter.getDefaultValue(); if (defaultValues != null && defaultValues.length !=0) { defaults.addAll(parameter.getName(), defaultValues); } } return defaults; }
/** * Returns parameter parser response for the query * * @return ParameterParserResponse object */ public ParameterParserResponse extractParameters() { final Matcher m = PARAM_PATTERN.matcher(query); final Set<Parameter> allParams = Sets.newHashSet(); while (m.find()) { String validMatch = m.group(1); if (validMatch != null) { allParams.add(new Parameter(validMatch)); } } return new ParameterParserResponse( true, null, ImmutableSet.copyOf(allParams) ); } }
try { encodedValue = ParameterCollectionTypeEncoder .valueOf(parameterDetail.getCollectionType().toString()) .encode( parameterDetail.getDataType(), values );
/** * Given a saved query, this method extrapolates the parameter values (using the parameter definition) * and returns it as a multivalued map * * @param savedQuery * @return multivalued map containing parameter values */ private static MultivaluedMap<String, String> extrapolateSampleParamValues(SavedQuery savedQuery) { final MultivaluedHashMap<String, String> paramValues = new MultivaluedHashMap<>(); for(Parameter parameter : savedQuery.getParameters()) { final String sampleValue = ParameterDataTypeEncoder.valueOf(parameter.getDataType().toString()).getSampleValue(); if (parameter.getCollectionType() == ParameterCollectionType.SINGLE) { paramValues.putSingle( parameter.getName(), sampleValue ); } else if (parameter.getCollectionType() == ParameterCollectionType.MULTIPLE) { paramValues.put( parameter.getName(), Lists.newArrayList(sampleValue, sampleValue) ); } } return paramValues; }
/** * Extracts the default parameter values from the saved query * * @param query * @return multivalued map of parameter values */ public static MultivaluedMap<String, String> getDefaultParameterValues(SavedQuery query) { final MultivaluedMap<String, String> defaults = new MultivaluedHashMap<>(); for(Parameter parameter: query.getParameters()) { String[] defaultValues = parameter.getDefaultValue(); if (defaultValues != null && defaultValues.length !=0) { defaults.addAll(parameter.getName(), defaultValues); } } return defaults; }
/** * Returns parameter parser response for the query * * @return ParameterParserResponse object */ public ParameterParserResponse extractParameters() { final Matcher m = PARAM_PATTERN.matcher(query); final Set<Parameter> allParams = Sets.newHashSet(); while (m.find()) { String validMatch = m.group(1); if (validMatch != null) { allParams.add(new Parameter(validMatch)); } } return new ParameterParserResponse( true, null, ImmutableSet.copyOf(allParams) ); } }
try { encodedValue = ParameterCollectionTypeEncoder .valueOf(parameterDetail.getCollectionType().toString()) .encode( parameterDetail.getDataType(), values );
@Override public String apply(Parameter parameter) { return parameter.getName(); } }));
private ParameterResolver(SavedQuery savedQuery, MultivaluedMap<String, String> queryParameters) { final ImmutableMap.Builder<String, Parameter> builder = ImmutableMap.builder(); for (Parameter parameter : savedQuery.getParameters()) { builder.put(parameter.getName(), parameter); } parameterMap = builder.build(); this.savedQuery = savedQuery; this.queryParameters = SavedQueryHelper.getDefaultParameterValues(savedQuery); this.queryParameters.putAll(queryParameters); }
private ParameterResolver(SavedQuery savedQuery, MultivaluedMap<String, String> queryParameters) { final ImmutableMap.Builder<String, Parameter> builder = ImmutableMap.builder(); for (Parameter parameter : savedQuery.getParameters()) { builder.put(parameter.getName(), parameter); } parameterMap = builder.build(); this.savedQuery = savedQuery; this.queryParameters = SavedQueryHelper.getDefaultParameterValues(savedQuery); this.queryParameters.putAll(queryParameters); }
@Test(enabled = false) //TODO : Enable this once LENS-1341 is fixed public void getSavedQueryParameters() throws Exception { String query = "cube select id,name from sample_dim where id = :value"; ParameterParserResponse res = savedQueryResourceHelper.getSavedQueryParameter(query, sessionHandleString); ImmutableSet<Parameter> paramList = res.getParameters(); Assert.assertEquals(paramList.size(), 1); Assert.assertEquals(paramList.iterator().next().getName(), "value"); }