public<V> V findParameter(Parameter[] parameters, V defaultValue) { V result = null; for (Parameter p : parameters) { if (p.key().equalsIgnoreCase(name)) { Object value = p.value(); Preconditions.checkArgument(value!=null,"Invalid mapping specified: %s",value); Preconditions.checkArgument(result==null,"Multiple mappings specified"); result = (V)value; } } if (result==null) return defaultValue; return result; }
public static List<Parameter> getCustomParameters(Parameter[] parameters){ return Arrays.stream(parameters) .filter(p -> p.key().startsWith(CUSTOM_PARAMETER_PREFIX)) .map(p -> new Parameter<>(p.key().substring(CUSTOM_PARAMETER_PREFIX.length()), p.value())) .collect(Collectors.toList()); }
@Override public void write(WriteBuffer buffer, Parameter attribute) { DataOutput out = (DataOutput)buffer; out.writeObjectNotNull(attribute.key()); out.writeClassAndObject(attribute.value()); }
private void setStatusEdges(JanusGraphSchemaVertex vertex, SchemaStatus status, Set<PropertyKeyVertex> keys) { Preconditions.checkArgument(vertex.asIndexType().isMixedIndex()); for (JanusGraphEdge edge : vertex.getEdges(TypeDefinitionCategory.INDEX_FIELD, Direction.OUT)) { if (!keys.contains(edge.vertex(Direction.IN))) continue; //Only address edges with matching keys TypeDefinitionDescription desc = edge.valueOrNull(BaseKey.SchemaDefinitionDesc); assert desc.getCategory() == TypeDefinitionCategory.INDEX_FIELD; Parameter[] parameters = (Parameter[]) desc.getModifier(); assert parameters[parameters.length - 1].key().equals(ParameterType.STATUS.getName()); if (parameters[parameters.length - 1].value().equals(status)) continue; Parameter[] paraCopy = Arrays.copyOf(parameters, parameters.length); paraCopy[parameters.length - 1] = ParameterType.STATUS.getParameter(status); edge.remove(); addSchemaEdge(vertex, edge.vertex(Direction.IN), TypeDefinitionCategory.INDEX_FIELD, paraCopy); } for (PropertyKeyVertex prop : keys) prop.resetCache(); }
public Map<String,Object> createRequestBody(ElasticSearchRequest request, Parameter[] parameters) { final Map<String,Object> requestBody = new HashMap<>(); Optional.ofNullable(request.getSize()).ifPresent(parameter -> requestBody.put("size", parameter)); Optional.ofNullable(request.getFrom()).ifPresent(parameter -> requestBody.put("from", parameter)); if (!request.getSorts().isEmpty()) { requestBody.put("sort", request.getSorts()); } Optional.ofNullable(request.getQuery()).ifPresent(parameter -> requestBody.put("query", parameter)); Optional.ofNullable(parameters).ifPresent(p -> Arrays.stream(p).forEachOrdered(parameter -> requestBody.put(parameter.key(), parameter.value()))); return requestBody; }
private SolrQuery runCommonQuery(RawQuery query, KeyInformation.IndexRetriever information, BaseTransaction tx, String collection, String keyIdField) throws BackendException { final SolrQuery solrQuery = new SolrQuery(query.getQuery()) .addField(keyIdField) .setIncludeScore(true) .setStart(query.getOffset()); if (query.hasLimit()) { solrQuery.setRows(Math.min(query.getLimit(), batchSize)); } else { solrQuery.setRows(batchSize); } for(final Parameter parameter: query.getParameters()) { if (parameter.value() instanceof String[]) { solrQuery.setParam(parameter.key(), (String[]) parameter.value()); } else if (parameter.value() instanceof String) { solrQuery.setParam(parameter.key(), (String) parameter.value()); } } return solrQuery; }
customParameters.forEach(p -> mapping.put(p.key(), p.value())); properties.put(key, mapping);