1 package com.atlassian.marketplace.client;
2
3 import java.net.URI;
4
5 import com.atlassian.marketplace.client.http.HttpConfiguration;
6 import com.atlassian.marketplace.client.impl.DefaultMarketplaceClient;
7
8 /**
9 * Static factory methods for creating the standard implementation of {@link MarketplaceClient}.
10 * @since 2.0.0
11 */
12 public abstract class MarketplaceClientFactory
13 {
14 /**
15 * The standard base URI of the Atlassian Marketplace server.
16 */
17 public static final URI DEFAULT_MARKETPLACE_URI = URI.create("https://marketplace.atlassian.com");
18
19 private MarketplaceClientFactory()
20 {
21 }
22
23 /**
24 * Creates a {@link MarketplaceClient} instance using a specific server URI and configuration.
25 * @param baseUri the base URI of the Atlassian Marketplace server
26 * @param configuration an {@link HttpConfiguration} object
27 */
28 public static MarketplaceClient createMarketplaceClient(URI baseUri, HttpConfiguration configuration)
29 {
30 return new DefaultMarketplaceClient(baseUri, configuration);
31 }
32
33 /**
34 * Creates a {@link MarketplaceClient} instance using a specific server URI, using defaults for all
35 * other configuration properties.
36 * @param baseUri the base URI of the Atlassian Marketplace server
37 */
38 public static MarketplaceClient createMarketplaceClient(URI baseUri)
39 {
40 return createMarketplaceClient(baseUri, HttpConfiguration.defaults());
41 }
42
43 /**
44 * Creates a {@link MarketplaceClient} instance using a specific configuration, and the default
45 * server URI.
46 * @param configuration an {@link HttpConfiguration} object
47 */
48 public static MarketplaceClient createMarketplaceClient(HttpConfiguration configuration)
49 {
50 return createMarketplaceClient(DEFAULT_MARKETPLACE_URI, configuration);
51 }
52
53 /**
54 * Creates a {@link MarketplaceClient} instance using the default server URI and configuration.
55 */
56 public static MarketplaceClient createMarketplaceClient()
57 {
58 return createMarketplaceClient(DEFAULT_MARKETPLACE_URI);
59 }
60 }