Skip to content

Commit

Permalink
[codegen] update to latest spec (+ fixed esql adapter)
Browse files Browse the repository at this point in the history
  • Loading branch information
l-trotta committed Sep 10, 2024
1 parent da50763 commit e2be39e
Show file tree
Hide file tree
Showing 15 changed files with 1,013 additions and 47 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
import co.elastic.clients.elasticsearch.esql.ElasticsearchEsqlAsyncClient;
import co.elastic.clients.elasticsearch.esql.ElasticsearchEsqlClient;
import co.elastic.clients.elasticsearch.esql.QueryRequest;
import co.elastic.clients.elasticsearch.esql.query.EsqlFormat;
import co.elastic.clients.json.JsonData;
import co.elastic.clients.transport.endpoints.BinaryResponse;

Expand Down Expand Up @@ -81,7 +82,7 @@ private static <T> CompletableFuture<T> doQueryAsync(

private static QueryRequest buildRequest(EsqlAdapter<?> adapter, String query, Object... params) {
return QueryRequest.of(esql -> esql
.format(adapter.format())
.format(EsqlFormat._DESERIALIZER.parse(adapter.format()))
.columnar(adapter.columnar())
.query(query)
.params(asFieldValues(params))
Expand All @@ -91,7 +92,7 @@ private static QueryRequest buildRequest(EsqlAdapter<?> adapter, String query, O
private static QueryRequest buildRequest(EsqlAdapter<?> adapter, QueryRequest request) {
return QueryRequest.of(q -> q
// Set/override format and columnar
.format(adapter.format())
.format(EsqlFormat._DESERIALIZER.parse(adapter.format()))
.columnar(adapter.columnar())

.delimiter(request.delimiter())
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,156 @@
/*
* Licensed to Elasticsearch B.V. under one or more contributor
* license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright
* ownership. Elasticsearch B.V. licenses this file to you under
* the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/

package co.elastic.clients.elasticsearch._types.analysis;

import co.elastic.clients.json.JsonpDeserializable;
import co.elastic.clients.json.JsonpDeserializer;
import co.elastic.clients.json.JsonpMapper;
import co.elastic.clients.json.ObjectBuilderDeserializer;
import co.elastic.clients.json.ObjectDeserializer;
import co.elastic.clients.util.ObjectBuilder;
import jakarta.json.stream.JsonGenerator;
import java.lang.Integer;
import java.util.Objects;
import java.util.function.Function;
import javax.annotation.Nullable;

//----------------------------------------------------------------
// THIS CODE IS GENERATED. MANUAL EDITS WILL BE LOST.
//----------------------------------------------------------------
//
// This code is generated from the Elasticsearch API specification
// at https://github.com/elastic/elasticsearch-specification
//
// Manual updates to this file will be lost when the code is
// re-generated.
//
// If you find a property that is missing or wrongly typed, please
// open an issue or a PR on the API specification repository.
//
//----------------------------------------------------------------

// typedef: _types.analysis.ClassicTokenizer

/**
*
* @see <a href=
* "../../doc-files/api-spec.html#_types.analysis.ClassicTokenizer">API
* specification</a>
*/
@JsonpDeserializable
public class ClassicTokenizer extends TokenizerBase implements TokenizerDefinitionVariant {
@Nullable
private final Integer maxTokenLength;

// ---------------------------------------------------------------------------------------------

private ClassicTokenizer(Builder builder) {
super(builder);

this.maxTokenLength = builder.maxTokenLength;

}

public static ClassicTokenizer of(Function<Builder, ObjectBuilder<ClassicTokenizer>> fn) {
return fn.apply(new Builder()).build();
}

/**
* TokenizerDefinition variant kind.
*/
@Override
public TokenizerDefinition.Kind _tokenizerDefinitionKind() {
return TokenizerDefinition.Kind.Classic;
}

/**
* API name: {@code max_token_length}
*/
@Nullable
public final Integer maxTokenLength() {
return this.maxTokenLength;
}

protected void serializeInternal(JsonGenerator generator, JsonpMapper mapper) {

generator.write("type", "classic");
super.serializeInternal(generator, mapper);
if (this.maxTokenLength != null) {
generator.writeKey("max_token_length");
generator.write(this.maxTokenLength);

}

}

// ---------------------------------------------------------------------------------------------

/**
* Builder for {@link ClassicTokenizer}.
*/

public static class Builder extends TokenizerBase.AbstractBuilder<Builder>
implements
ObjectBuilder<ClassicTokenizer> {
@Nullable
private Integer maxTokenLength;

/**
* API name: {@code max_token_length}
*/
public final Builder maxTokenLength(@Nullable Integer value) {
this.maxTokenLength = value;
return this;
}

@Override
protected Builder self() {
return this;
}

/**
* Builds a {@link ClassicTokenizer}.
*
* @throws NullPointerException
* if some of the required fields are null.
*/
public ClassicTokenizer build() {
_checkSingleUse();

return new ClassicTokenizer(this);
}
}

// ---------------------------------------------------------------------------------------------

/**
* Json deserializer for {@link ClassicTokenizer}
*/
public static final JsonpDeserializer<ClassicTokenizer> _DESERIALIZER = ObjectBuilderDeserializer.lazy(Builder::new,
ClassicTokenizer::setupClassicTokenizerDeserializer);

protected static void setupClassicTokenizerDeserializer(ObjectDeserializer<ClassicTokenizer.Builder> op) {
TokenizerBase.setupTokenizerBaseDeserializer(op);
op.add(Builder::maxTokenLength, JsonpDeserializer.integerDeserializer(), "max_token_length");

op.ignore("type");
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ private EdgeNGramTokenizer(Builder builder) {
this.customTokenChars = builder.customTokenChars;
this.maxGram = ApiTypeHelper.requireNonNull(builder.maxGram, this, "maxGram");
this.minGram = ApiTypeHelper.requireNonNull(builder.minGram, this, "minGram");
this.tokenChars = ApiTypeHelper.unmodifiableRequired(builder.tokenChars, this, "tokenChars");
this.tokenChars = ApiTypeHelper.unmodifiable(builder.tokenChars);

}

Expand Down Expand Up @@ -115,7 +115,7 @@ public final int minGram() {
}

/**
* Required - API name: {@code token_chars}
* API name: {@code token_chars}
*/
public final List<TokenChar> tokenChars() {
return this.tokenChars;
Expand Down Expand Up @@ -164,6 +164,7 @@ public static class Builder extends TokenizerBase.AbstractBuilder<Builder>

private Integer minGram;

@Nullable
private List<TokenChar> tokenChars;

/**
Expand Down Expand Up @@ -191,7 +192,7 @@ public final Builder minGram(int value) {
}

/**
* Required - API name: {@code token_chars}
* API name: {@code token_chars}
* <p>
* Adds all elements of <code>list</code> to <code>tokenChars</code>.
*/
Expand All @@ -201,7 +202,7 @@ public final Builder tokenChars(List<TokenChar> list) {
}

/**
* Required - API name: {@code token_chars}
* API name: {@code token_chars}
* <p>
* Adds one or more values to <code>tokenChars</code>.
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ private NGramTokenizer(Builder builder) {
this.customTokenChars = builder.customTokenChars;
this.maxGram = ApiTypeHelper.requireNonNull(builder.maxGram, this, "maxGram");
this.minGram = ApiTypeHelper.requireNonNull(builder.minGram, this, "minGram");
this.tokenChars = ApiTypeHelper.unmodifiableRequired(builder.tokenChars, this, "tokenChars");
this.tokenChars = ApiTypeHelper.unmodifiable(builder.tokenChars);

}

Expand Down Expand Up @@ -115,7 +115,7 @@ public final int minGram() {
}

/**
* Required - API name: {@code token_chars}
* API name: {@code token_chars}
*/
public final List<TokenChar> tokenChars() {
return this.tokenChars;
Expand Down Expand Up @@ -164,6 +164,7 @@ public static class Builder extends TokenizerBase.AbstractBuilder<Builder>

private Integer minGram;

@Nullable
private List<TokenChar> tokenChars;

/**
Expand Down Expand Up @@ -191,7 +192,7 @@ public final Builder minGram(int value) {
}

/**
* Required - API name: {@code token_chars}
* API name: {@code token_chars}
* <p>
* Adds all elements of <code>list</code> to <code>tokenChars</code>.
*/
Expand All @@ -201,7 +202,7 @@ public final Builder tokenChars(List<TokenChar> list) {
}

/**
* Required - API name: {@code token_chars}
* API name: {@code token_chars}
* <p>
* Adds one or more values to <code>tokenChars</code>.
*/
Expand Down
Loading

0 comments on commit e2be39e

Please sign in to comment.