1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package com.atlassian.jira.rest.client.plugin;
18
19 import com.atlassian.httpclient.api.HttpClient;
20 import com.atlassian.jira.rest.client.api.IssueRestClient;
21 import com.atlassian.jira.rest.client.internal.async.AsynchronousIssueRestClient;
22 import com.atlassian.plugin.remotable.api.annotation.PublicComponent;
23
24 import javax.inject.Inject;
25 import java.net.URI;
26
27 import static com.google.common.base.Preconditions.checkNotNull;
28
29 @PublicComponent(IssueRestClient.class)
30 public final class IssueRestClientServiceFactory extends AbstractRestClientServiceFactory<IssueRestClient>
31 {
32 private final MetadataRestClientServiceFactory metadataRestClientServiceFactory;
33 private final SessionRestClientServiceFactory sessionRestClientServiceFactory;
34
35 @Inject
36 public IssueRestClientServiceFactory(MetadataRestClientServiceFactory metadataRestClientServiceFactory, SessionRestClientServiceFactory sessionRestClientServiceFactory)
37 {
38 this.metadataRestClientServiceFactory = checkNotNull(metadataRestClientServiceFactory);
39 this.sessionRestClientServiceFactory = checkNotNull(sessionRestClientServiceFactory);
40 }
41
42 @Override
43 protected IssueRestClient getService(URI baseUri, HttpClient httpClient)
44 {
45 return new AsynchronousIssueRestClient(
46 baseUri,
47 httpClient,
48 sessionRestClientServiceFactory.getService(baseUri, httpClient),
49 metadataRestClientServiceFactory.getService(baseUri, httpClient));
50 }
51 }