Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions src/main/java/com/chargebee/v4/client/ClientMethods.java
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@

import com.chargebee.v4.services.ItemService;

import com.chargebee.v4.services.PreferenceService;

import com.chargebee.v4.services.RampService;

import com.chargebee.v4.services.OmnichannelOneTimeOrderService;
Expand Down Expand Up @@ -74,6 +76,8 @@

import com.chargebee.v4.services.ProductService;

import com.chargebee.v4.services.PreferenceDefinitionService;

import com.chargebee.v4.services.CouponCodeService;

import com.chargebee.v4.services.AddressService;
Expand Down Expand Up @@ -304,6 +308,13 @@ public interface ClientMethods {
*/
ItemService items();

/**
* Access preference-related operations.
*
* @return PreferenceService instance for fluent API access
*/
PreferenceService preferences();

/**
* Access ramp-related operations.
*
Expand Down Expand Up @@ -465,6 +476,13 @@ public interface ClientMethods {
*/
ProductService products();

/**
* Access preference_definition-related operations.
*
* @return PreferenceDefinitionService instance for fluent API access
*/
PreferenceDefinitionService preferenceDefinitions();

/**
* Access coupon_code-related operations.
*
Expand Down
14 changes: 14 additions & 0 deletions src/main/java/com/chargebee/v4/client/ClientMethodsImpl.java
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@

import com.chargebee.v4.services.ItemService;

import com.chargebee.v4.services.PreferenceService;

import com.chargebee.v4.services.RampService;

import com.chargebee.v4.services.OmnichannelOneTimeOrderService;
Expand Down Expand Up @@ -74,6 +76,8 @@

import com.chargebee.v4.services.ProductService;

import com.chargebee.v4.services.PreferenceDefinitionService;

import com.chargebee.v4.services.CouponCodeService;

import com.chargebee.v4.services.AddressService;
Expand Down Expand Up @@ -278,6 +282,11 @@ public ItemService items() {
return getServiceRegistry().items();
}

@Override
public PreferenceService preferences() {
return getServiceRegistry().preferences();
}

@Override
public RampService ramps() {
return getServiceRegistry().ramps();
Expand Down Expand Up @@ -393,6 +402,11 @@ public ProductService products() {
return getServiceRegistry().products();
}

@Override
public PreferenceDefinitionService preferenceDefinitions() {
return getServiceRegistry().preferenceDefinitions();
}

@Override
public CouponCodeService couponCodes() {
return getServiceRegistry().couponCodes();
Expand Down
38 changes: 38 additions & 0 deletions src/main/java/com/chargebee/v4/client/ServiceRegistry.java
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@

import com.chargebee.v4.services.ItemService;

import com.chargebee.v4.services.PreferenceService;

import com.chargebee.v4.services.RampService;

import com.chargebee.v4.services.OmnichannelOneTimeOrderService;
Expand Down Expand Up @@ -74,6 +76,8 @@

import com.chargebee.v4.services.ProductService;

import com.chargebee.v4.services.PreferenceDefinitionService;

import com.chargebee.v4.services.CouponCodeService;

import com.chargebee.v4.services.AddressService;
Expand Down Expand Up @@ -235,6 +239,8 @@ final class ServiceRegistry {

private volatile ItemService itemService;

private volatile PreferenceService preferenceService;

private volatile RampService rampService;

private volatile OmnichannelOneTimeOrderService omnichannelOneTimeOrderService;
Expand Down Expand Up @@ -281,6 +287,8 @@ final class ServiceRegistry {

private volatile ProductService productService;

private volatile PreferenceDefinitionService preferenceDefinitionService;

private volatile CouponCodeService couponCodeService;

private volatile AddressService addressService;
Expand Down Expand Up @@ -621,6 +629,21 @@ ItemService items() {
return itemService;
}

/**
* Get or create the PreferenceService instance. Thread-safe lazy initialization using
* double-checked locking.
*/
PreferenceService preferences() {
if (preferenceService == null) {
synchronized (this) {
if (preferenceService == null) {
preferenceService = new PreferenceService(client);
}
}
}
return preferenceService;
}

/**
* Get or create the RampService instance. Thread-safe lazy initialization using double-checked
* locking.
Expand Down Expand Up @@ -966,6 +989,21 @@ ProductService products() {
return productService;
}

/**
* Get or create the PreferenceDefinitionService instance. Thread-safe lazy initialization using
* double-checked locking.
*/
PreferenceDefinitionService preferenceDefinitions() {
if (preferenceDefinitionService == null) {
synchronized (this) {
if (preferenceDefinitionService == null) {
preferenceDefinitionService = new PreferenceDefinitionService(client);
}
}
}
return preferenceDefinitionService;
}

/**
* Get or create the CouponCodeService instance. Thread-safe lazy initialization using
* double-checked locking.
Expand Down
Loading
Loading