-
Notifications
You must be signed in to change notification settings - Fork 26
Expand file tree
/
Copy pathWeaviateClient.java
More file actions
132 lines (107 loc) · 4.37 KB
/
WeaviateClient.java
File metadata and controls
132 lines (107 loc) · 4.37 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
package io.weaviate.client;
import java.util.Optional;
import io.weaviate.client.base.http.HttpClient;
import io.weaviate.client.base.http.builder.HttpApacheClientBuilder;
import io.weaviate.client.base.http.impl.CommonsHttpClientImpl;
import io.weaviate.client.base.util.DbVersionProvider;
import io.weaviate.client.base.util.DbVersionSupport;
import io.weaviate.client.base.util.GrpcVersionSupport;
import io.weaviate.client.v1.aliases.Aliases;
import io.weaviate.client.v1.async.WeaviateAsyncClient;
import io.weaviate.client.v1.auth.provider.AccessTokenProvider;
import io.weaviate.client.v1.backup.Backup;
import io.weaviate.client.v1.batch.Batch;
import io.weaviate.client.v1.classifications.Classifications;
import io.weaviate.client.v1.cluster.Cluster;
import io.weaviate.client.v1.contextionary.Contextionary;
import io.weaviate.client.v1.data.Data;
import io.weaviate.client.v1.graphql.GraphQL;
import io.weaviate.client.v1.groups.Groups;
import io.weaviate.client.v1.grpc.GRPC;
import io.weaviate.client.v1.misc.Misc;
import io.weaviate.client.v1.misc.api.MetaGetter;
import io.weaviate.client.v1.rbac.Roles;
import io.weaviate.client.v1.schema.Schema;
import io.weaviate.client.v1.users.Users;
public class WeaviateClient {
private final Config config;
private final DbVersionProvider dbVersionProvider;
private final DbVersionSupport dbVersionSupport;
private final GrpcVersionSupport grpcVersionSupport;
private final HttpClient httpClient;
private final AccessTokenProvider tokenProvider;
public final io.weaviate.client.v1.experimental.Collections collections;
public final io.weaviate.client.v1.experimental.DataClient datax;
public WeaviateClient(Config config) {
this(config, new CommonsHttpClientImpl(config.getHeaders(), null, HttpApacheClientBuilder.build(config)), null);
}
public WeaviateClient(Config config, AccessTokenProvider tokenProvider) {
this(config, new CommonsHttpClientImpl(config.getHeaders(), tokenProvider, HttpApacheClientBuilder.build(config)),
tokenProvider);
}
public WeaviateClient(Config config, HttpClient httpClient, AccessTokenProvider tokenProvider) {
this.config = config;
this.httpClient = httpClient;
dbVersionProvider = initDbVersionProvider();
dbVersionSupport = new DbVersionSupport(dbVersionProvider);
grpcVersionSupport = new GrpcVersionSupport(dbVersionProvider);
this.tokenProvider = tokenProvider;
this.collections = new io.weaviate.client.v1.experimental.Collections(config, tokenProvider);
this.datax = new io.weaviate.client.v1.experimental.DataClient(config, httpClient, tokenProvider, dbVersionSupport,
grpcVersionSupport, new Data(httpClient, config, dbVersionSupport));
}
public WeaviateAsyncClient async() {
return new WeaviateAsyncClient(config, tokenProvider);
}
public Misc misc() {
return new Misc(httpClient, config, dbVersionProvider);
}
public Schema schema() {
return new Schema(httpClient, config, dbVersionSupport);
}
public Data data() {
dbVersionProvider.refresh();
return new Data(httpClient, config, dbVersionSupport);
}
public Batch batch() {
dbVersionProvider.refresh();
return new Batch(httpClient, config, dbVersionSupport, grpcVersionSupport, tokenProvider, data());
}
public Backup backup() {
return new Backup(httpClient, config);
}
public Contextionary c11y() {
return new Contextionary(httpClient, config);
}
public Classifications classifications() {
return new Classifications(httpClient, config);
}
public Cluster cluster() {
return new Cluster(httpClient, config);
}
public GraphQL graphQL() {
return new GraphQL(httpClient, config);
}
public GRPC gRPC() {
return new GRPC(httpClient, config, tokenProvider);
}
public Roles roles() {
return new Roles(httpClient, config);
}
public Users users() {
return new Users(httpClient, config);
}
public Groups groups() {
return new Groups(httpClient, config);
}
public Aliases alias() {
return new Aliases(httpClient, config);
}
private DbVersionProvider initDbVersionProvider() {
MetaGetter metaGetter = new Misc(httpClient, config, null).metaGetter();
DbVersionProvider.VersionGetter getter = () -> Optional.ofNullable(metaGetter.run())
.filter(result -> !result.hasErrors())
.map(result -> result.getResult().getVersion());
return new DbVersionProvider(getter);
}
}