001 002package com.commercetools.history.client; 003 004import java.io.Closeable; 005 006import io.vrap.rmf.base.client.ApiHttpClient; 007import io.vrap.rmf.base.client.SerializerOnlyApiHttpClient; 008 009public class ProjectApiRoot implements Closeable, ProjectScopedApiRoot { 010 private final String projectKey; 011 private final ApiHttpClient apiHttpClient; 012 013 private ProjectApiRoot(final String projectKey, final ApiHttpClient apiHttpClient) { 014 this.projectKey = projectKey; 015 this.apiHttpClient = apiHttpClient; 016 } 017 018 public static ProjectApiRoot of(final String projectKey) { 019 return new ProjectApiRoot(projectKey, SerializerOnlyApiHttpClient.of()); 020 } 021 022 public static ProjectApiRoot fromClient(final String projectKey, final ApiHttpClient apiHttpClient) { 023 return new ProjectApiRoot(projectKey, apiHttpClient); 024 } 025 026 @Override 027 public ByProjectKeyRequestBuilder with() { 028 return ApiRoot.fromClient(apiHttpClient).withProjectKeyValue(projectKey); 029 } 030 031 public ByProjectKeyRequestBuilder withProjectKey(final String projectKey) { 032 return ApiRoot.fromClient(apiHttpClient).withProjectKeyValue(projectKey); 033 } 034 035 @Override 036 public ByProjectKeyGet get() { 037 return with().get(); 038 } 039 040 @Override 041 public ByProjectKeyByResourceTypeRequestBuilder withResourceTypeValue(String resourceType) { 042 return with().withResourceTypeValue(resourceType); 043 } 044 045 @Override 046 public void close() { 047 if (apiHttpClient == null) { 048 return; 049 } 050 try { 051 apiHttpClient.close(); 052 } 053 catch (final Throwable ignored) { 054 } 055 } 056}