All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.shopify.model.ShopifyFulfillmentUpdateRequest Maven / Gradle / Ivy

package com.shopify.model;

import java.util.List;

public class ShopifyFulfillmentUpdateRequest {

	private final ShopifyFulfillment request;

	public static interface CurrentShopifyFulfillmentStep {
		public TrackingCompanyStep withCurrentShopifyFulfillment(final ShopifyFulfillment shopifyFulfillment);
	}

	public static interface TrackingCompanyStep {
		TrackingNumberStep withTrackingCompany(final String trackingCompany);
	}

	public static interface TrackingNumberStep {
		NotifyCustomerStep withTrackingNumber(final String trackingNumber);
	}

	public static interface NotifyCustomerStep {
		LineItemsStep withNotifyCustomer(final boolean notifyCustomer);
	}

	public static interface LineItemsStep {
		LocationIdStep withLineItems(final List lineItems);
	}

	public static interface LocationIdStep {
		TrackingUrlsStep withLocationId(final String locationId);
	}

	public static interface TrackingUrlsStep {
		BuildStep withTrackingUrls(final List trackingUrls);
	}

	public static interface BuildStep {
		ShopifyFulfillmentUpdateRequest build();
	}

	public static CurrentShopifyFulfillmentStep newBuilder() {
		return new Steps();
	}

	public ShopifyFulfillment getRequest() {
		return request;
	}

	private ShopifyFulfillmentUpdateRequest(final ShopifyFulfillment request) {
		this.request = request;
	}

	private static class Steps implements CurrentShopifyFulfillmentStep, TrackingCompanyStep, TrackingNumberStep,
			NotifyCustomerStep, LineItemsStep, LocationIdStep, TrackingUrlsStep, BuildStep {

		private ShopifyFulfillment request;

		@Override
		public ShopifyFulfillmentUpdateRequest build() {
			return new ShopifyFulfillmentUpdateRequest(request);
		}

		@Override
		public LocationIdStep withLineItems(final List lineItems) {
			request.setLineItems(lineItems);
			return this;
		}

		@Override
		public NotifyCustomerStep withTrackingNumber(final String trackingNumber) {
			request.setTrackingNumber(trackingNumber);
			return this;
		}

		@Override
		public TrackingNumberStep withTrackingCompany(final String trackingCompany) {
			request.setTrackingCompany(trackingCompany);
			return this;
		}

		@Override
		public TrackingCompanyStep withCurrentShopifyFulfillment(final ShopifyFulfillment shopifyFulfillment) {
			request = shopifyFulfillment;
			return this;
		}

		@Override
		public LineItemsStep withNotifyCustomer(final boolean notifyCustomer) {
			request.setNotifyCustomer(notifyCustomer);
			return this;
		}

		@Override
		public TrackingUrlsStep withLocationId(final String locationId) {
			request.setLocationId(locationId);
			return this;
		}

		@Override
		public BuildStep withTrackingUrls(final List trackingUrls) {
			request.setTrackingUrls(trackingUrls);
			return this;
		}

	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy