1818package org .killbill .billing .plugin .helloworld ;
1919
2020import java .math .BigDecimal ;
21+ import java .util .HashSet ;
22+ import java .util .LinkedList ;
2123import java .util .List ;
2224import java .util .Set ;
2325import java .util .UUID ;
2628import org .killbill .billing .invoice .api .Invoice ;
2729import org .killbill .billing .invoice .api .InvoiceItem ;
2830import org .killbill .billing .invoice .api .InvoiceItemType ;
31+ import org .killbill .billing .invoice .plugin .api .AdditionalItemsResult ;
32+ import org .killbill .billing .invoice .plugin .api .InvoiceContext ;
2933import org .killbill .billing .notification .plugin .api .ExtBusEvent ;
3034import org .killbill .billing .osgi .libs .killbill .OSGIConfigPropertiesService ;
3135import org .killbill .billing .osgi .libs .killbill .OSGIKillbillAPI ;
3236import org .killbill .billing .osgi .libs .killbill .OSGIKillbillEventDispatcher .OSGIKillbillEventHandler ;
3337import org .killbill .billing .payment .api .PluginProperty ;
3438import org .killbill .billing .plugin .api .invoice .PluginInvoiceItem ;
3539import org .killbill .billing .plugin .api .invoice .PluginInvoicePluginApi ;
36- import org .killbill .billing .util .callcontext .CallContext ;
3740import org .killbill .billing .util .callcontext .TenantContext ;
3841import org .killbill .clock .Clock ;
3942
40- import com .google .common .collect .ImmutableList ;
41- import com .google .common .collect .ImmutableSet ;
42-
4343class HelloWorldInvoicePluginApi extends PluginInvoicePluginApi implements OSGIKillbillEventHandler {
4444
4545 public HelloWorldInvoicePluginApi (final OSGIKillbillAPI killbillAPI , final OSGIConfigPropertiesService configProperties ,
@@ -63,13 +63,13 @@ public HelloWorldInvoicePluginApi(final OSGIKillbillAPI killbillAPI, final OSGIC
6363 * items.
6464 */
6565 @ Override
66- public List < InvoiceItem > getAdditionalInvoiceItems (final Invoice newInvoice , final boolean dryRun ,
67- final Iterable <PluginProperty > properties , final CallContext callContext ) {
66+ public AdditionalItemsResult getAdditionalInvoiceItems (final Invoice newInvoice , final boolean dryRun ,
67+ final Iterable <PluginProperty > properties , final InvoiceContext invoiceContext ) {
6868
6969 final UUID accountId = newInvoice .getAccountId ();
70- final Account account = getAccount (accountId , callContext );
71- final Set <Invoice > allInvoices = getAllInvoicesOfAccount (account , newInvoice , callContext );
72- final ImmutableList . Builder <InvoiceItem > additionalItems = ImmutableList . builder ();
70+ final Account account = getAccount (accountId , invoiceContext );
71+ final Set <Invoice > allInvoices = getAllInvoicesOfAccount (account , newInvoice , invoiceContext );
72+ final List <InvoiceItem > additionalItems = new LinkedList < InvoiceItem > ();
7373
7474 // Creating tax item for first Item of new Invoice
7575 final List <InvoiceItem > newInvoiceItems = newInvoice .getInvoiceItems ();
@@ -102,8 +102,18 @@ public List<InvoiceItem> getAdditionalInvoiceItems(final Invoice newInvoice, fin
102102 break ;
103103 }
104104 }
105+
106+ return new AdditionalItemsResult () {
107+ @ Override
108+ public List <InvoiceItem > getAdditionalItems () {
109+ return additionalItems ;
110+ }
105111
106- return additionalItems .build ();
112+ @ Override
113+ public Iterable <PluginProperty > getAdjustedPluginProperties () {
114+ return null ;
115+ }
116+ };
107117 }
108118
109119 /**
@@ -116,10 +126,10 @@ public List<InvoiceItem> getAdditionalInvoiceItems(final Invoice newInvoice, fin
116126 * @return All invoices of account
117127 */
118128 private Set <Invoice > getAllInvoicesOfAccount (final Account account , final Invoice newInvoice , final TenantContext tenantCtx ) {
119- final ImmutableSet . Builder <Invoice > builder = ImmutableSet . builder ();
120- builder .addAll (getInvoicesByAccountId (account .getId (), tenantCtx ));
121- builder .add (newInvoice );
122- return builder . build () ;
129+ final Set <Invoice > invoices = new HashSet < Invoice > ();
130+ invoices .addAll (getInvoicesByAccountId (account .getId (), tenantCtx ));
131+ invoices .add (newInvoice );
132+ return invoices ;
123133 }
124134
125135 /**
0 commit comments