code: protected final UtlInvLine<RS, PurchaseInvoice, PurchaseInvoiceServiceLine,
      PurchaseInvoiceTaxLine, PurchaseInvoiceServiceTaxLine> lazyGetUtlPurSrLn(
        final Map<String, Object> pAddParam) throws Exception {
      UtlInvLine<RS, PurchaseInvoice, PurchaseInvoiceServiceLine,
        PurchaseInvoiceTaxLine, PurchaseInvoiceServiceTaxLine> utlInvLn = this
          .utlPurInvSrLn;
      if (utlInvLn == null) {
        utlInvLn = new UtlInvLine<RS, PurchaseInvoice, PurchaseInvoiceServiceLine,
          PurchaseInvoiceTaxLine, PurchaseInvoiceServiceTaxLine>();
        utlInvLn.setUtlInvBase(lazyGetUtlInvBase(pAddParam));
        utlInvLn.setInvTxMeth(lazyGetPurInvTxMeth(pAddParam));
        utlInvLn.setIsMutable(true);
        utlInvLn.setNeedMkTxCat(true);
        utlInvLn.setLtlCl(PurchaseInvoiceServiceTaxLine.class);
        utlInvLn.setDstTxItLnCl(DestTaxServPurchLn.class);
        FactoryPersistableBase<PurchaseInvoiceServiceTaxLine> fctLtl =
          new FactoryPersistableBase<PurchaseInvoiceServiceTaxLine>();
        fctLtl.setObjectClass(PurchaseInvoiceServiceTaxLine.class);
        fctLtl.setDatabaseId(getSrvDatabase().getIdDatabase());
        utlInvLn.setFctLineTxLn(fctLtl);
        //assigning fully initialized object:
        this.utlPurInvSrLn = utlInvLn;
      }
      return utlInvLn;
    }
docs: <p>Get purchase invoice service line utility.</p>
  @param pAddParam additional param
  @return purchase invoice service line utility
  @throws Exception - an exception