
com.sap.cloud.sdk.s4hana.datamodel.odata.services.DefaultBillingDocumentService Maven / Gradle / Ivy
/*
* Copyright (c) 2019 SAP SE or an SAP affiliate company. All rights reserved.
*/
package com.sap.cloud.sdk.s4hana.datamodel.odata.services;
import javax.annotation.Nonnull;
import javax.inject.Named;
import com.sap.cloud.sdk.s4hana.datamodel.odata.namespaces.billingdocument.BillingDocumentByKeyFluentHelper;
import com.sap.cloud.sdk.s4hana.datamodel.odata.namespaces.billingdocument.BillingDocumentFluentHelper;
import com.sap.cloud.sdk.s4hana.datamodel.odata.namespaces.billingdocument.BillingDocumentItemByKeyFluentHelper;
import com.sap.cloud.sdk.s4hana.datamodel.odata.namespaces.billingdocument.BillingDocumentItemFluentHelper;
import com.sap.cloud.sdk.s4hana.datamodel.odata.namespaces.billingdocument.BillingDocumentItemPartnerByKeyFluentHelper;
import com.sap.cloud.sdk.s4hana.datamodel.odata.namespaces.billingdocument.BillingDocumentItemPartnerFluentHelper;
import com.sap.cloud.sdk.s4hana.datamodel.odata.namespaces.billingdocument.BillingDocumentItemPrcgElmntByKeyFluentHelper;
import com.sap.cloud.sdk.s4hana.datamodel.odata.namespaces.billingdocument.BillingDocumentItemPrcgElmntFluentHelper;
import com.sap.cloud.sdk.s4hana.datamodel.odata.namespaces.billingdocument.BillingDocumentPartnerByKeyFluentHelper;
import com.sap.cloud.sdk.s4hana.datamodel.odata.namespaces.billingdocument.BillingDocumentPartnerFluentHelper;
import com.sap.cloud.sdk.s4hana.datamodel.odata.namespaces.billingdocument.BillingDocumentPrcgElmntByKeyFluentHelper;
import com.sap.cloud.sdk.s4hana.datamodel.odata.namespaces.billingdocument.BillingDocumentPrcgElmntFluentHelper;
import com.sap.cloud.sdk.s4hana.datamodel.odata.namespaces.billingdocument.CancelFluentHelper;
import com.sap.cloud.sdk.s4hana.datamodel.odata.namespaces.billingdocument.GetPDFFluentHelper;
import com.sap.cloud.sdk.s4hana.datamodel.odata.namespaces.billingdocument.batch.DefaultBillingDocumentServiceBatch;
/**
*
* This inbound service enables external systems and other consumers to read billing document data and cancel billing
* documents through API calls. You can use it to let external systems retrieve billing document data from your system,
* to cancel billing documents in the system, and to request entire billing documents in PDF format.
*
*
*
* Reference: SAP
* API Business Hub
*
* Details:
*
*
* OData Service:
* API_BILLING_DOCUMENT_SRV
*
*
* API Version:
* 1
*
*
* Communication Scenario:
* Billing Integration (SAP_COM_0120)
*
*
* Scope Items:
* External Billing (1Z6)
*
*
* Authentication Methods:
* Basic, x509
*
*
* Business Object:
* BillingDocument
*
*
*
*/
@Named( "com.sap.cloud.sdk.s4hana.datamodel.odata.services.DefaultBillingDocumentService" )
public class DefaultBillingDocumentService implements BillingDocumentService
{
@Nonnull
private final String servicePath;
/**
* Creates a service using {@link BillingDocumentService#DEFAULT_SERVICE_PATH} to send the requests.
*
*/
public DefaultBillingDocumentService()
{
servicePath = BillingDocumentService.DEFAULT_SERVICE_PATH;
}
/**
* Creates a service using the provided service path to send the requests.
*
* Used by the fluent {@link #withServicePath(String)} method.
*
*/
private DefaultBillingDocumentService( @Nonnull final String servicePath )
{
this.servicePath = servicePath;
}
@Override
@Nonnull
public DefaultBillingDocumentService withServicePath( @Nonnull final String servicePath )
{
return new DefaultBillingDocumentService(servicePath);
}
/**
* {@inheritDoc}
*
*/
@Override
@Nonnull
public DefaultBillingDocumentServiceBatch batch()
{
return new DefaultBillingDocumentServiceBatch(this);
}
@Override
@Nonnull
public BillingDocumentFluentHelper getAllBillingDocument()
{
return new BillingDocumentFluentHelper(servicePath);
}
@Override
@Nonnull
public BillingDocumentByKeyFluentHelper getBillingDocumentByKey( final String billingDocument )
{
return new BillingDocumentByKeyFluentHelper(servicePath, billingDocument);
}
@Override
@Nonnull
public BillingDocumentItemFluentHelper getAllBillingDocumentItem()
{
return new BillingDocumentItemFluentHelper(servicePath);
}
@Override
@Nonnull
public
BillingDocumentItemByKeyFluentHelper
getBillingDocumentItemByKey( final String billingDocument, final String billingDocumentItem )
{
return new BillingDocumentItemByKeyFluentHelper(servicePath, billingDocument, billingDocumentItem);
}
@Override
@Nonnull
public BillingDocumentItemPartnerFluentHelper getAllBillingDocumentItemPartner()
{
return new BillingDocumentItemPartnerFluentHelper(servicePath);
}
@Override
@Nonnull
public BillingDocumentItemPartnerByKeyFluentHelper getBillingDocumentItemPartnerByKey(
final String billingDocument,
final String billingDocumentItem,
final String partnerFunction )
{
return new BillingDocumentItemPartnerByKeyFluentHelper(
servicePath,
billingDocument,
billingDocumentItem,
partnerFunction);
}
@Override
@Nonnull
public BillingDocumentItemPrcgElmntFluentHelper getAllBillingDocumentItemPrcgElmnt()
{
return new BillingDocumentItemPrcgElmntFluentHelper(servicePath);
}
@Override
@Nonnull
public BillingDocumentItemPrcgElmntByKeyFluentHelper getBillingDocumentItemPrcgElmntByKey(
final String billingDocument,
final String billingDocumentItem,
final String pricingProcedureStep,
final String pricingProcedureCounter )
{
return new BillingDocumentItemPrcgElmntByKeyFluentHelper(
servicePath,
billingDocument,
billingDocumentItem,
pricingProcedureStep,
pricingProcedureCounter);
}
@Override
@Nonnull
public BillingDocumentPartnerFluentHelper getAllBillingDocumentPartner()
{
return new BillingDocumentPartnerFluentHelper(servicePath);
}
@Override
@Nonnull
public
BillingDocumentPartnerByKeyFluentHelper
getBillingDocumentPartnerByKey( final String billingDocument, final String partnerFunction )
{
return new BillingDocumentPartnerByKeyFluentHelper(servicePath, billingDocument, partnerFunction);
}
@Override
@Nonnull
public BillingDocumentPrcgElmntFluentHelper getAllBillingDocumentPrcgElmnt()
{
return new BillingDocumentPrcgElmntFluentHelper(servicePath);
}
@Override
@Nonnull
public BillingDocumentPrcgElmntByKeyFluentHelper getBillingDocumentPrcgElmntByKey(
final String billingDocument,
final String pricingProcedureStep,
final String pricingProcedureCounter )
{
return new BillingDocumentPrcgElmntByKeyFluentHelper(
servicePath,
billingDocument,
pricingProcedureStep,
pricingProcedureCounter);
}
@Override
@Nonnull
public CancelFluentHelper cancel( final String billingDocument )
{
return new CancelFluentHelper(servicePath, billingDocument);
}
@Override
@Nonnull
public GetPDFFluentHelper getPDF( final String billingDocument )
{
return new GetPDFFluentHelper(servicePath, billingDocument);
}
}