docs: @Override
    public final List<Node<String>> getSampleDataRow(
      final Map<String, Object> pReqVars) throws Exception {
      String lang = (String) pReqVars.get("lang");
      List<Node<String>> result = new ArrayList<Node<String>>();
      Integer idx = 1;
      Node<String> nodeService = new Node<String>();
      result.add(nodeService);
      nodeService.setItsName(getSrvI18n().getMsg("service", lang));
      nodeService.setItsNodes(new ArrayList<Node<String>>());
      Node<String> nodeServiceName = new Node<String>();
      nodeService.getItsNodes().add(nodeServiceName);
      nodeServiceName.setItsName(getSrvI18n().getMsg("itsName", lang));
      nodeServiceName.setItsValue(idx.toString() + ";itsName");
      Node<String> nodeServiceId = new Node<String>();
      nodeService.getItsNodes().add(nodeServiceId);
      nodeServiceId.setItsName(getSrvI18n().getMsg("itsId", lang));
      nodeServiceId.setItsValue(idx.toString() + ";itsId");
      Node<String> nodeServiceItsCategory = new Node<String>();
      nodeService.getItsNodes().add(nodeServiceItsCategory);
      nodeServiceItsCategory.setItsName(getSrvI18n().getMsg("itsCategory", lang));
      nodeServiceItsCategory.setItsNodes(new ArrayList<Node<String>>());
      Node<String> nodeServiceItsCategoryName = new Node<String>();
      nodeServiceItsCategory.getItsNodes().add(nodeServiceItsCategoryName);
      nodeServiceItsCategoryName.setItsName(getSrvI18n().getMsg("itsName", lang));
      nodeServiceItsCategoryName
        .setItsValue(idx.toString() + ";itsCategory,itsName");
      Node<String> nodeServiceItsCategoryId = new Node<String>();
      nodeServiceItsCategory.getItsNodes().add(nodeServiceItsCategoryId);
      nodeServiceItsCategoryId.setItsName(getSrvI18n().getMsg("itsId", lang));
      nodeServiceItsCategoryId.setItsValue(idx.toString() + ";itsCategory,itsId");
      idx++;
      Node<String> nodePrice = new Node<String>();
      result.add(nodePrice);
      nodePrice.setItsName(getSrvI18n().getMsg("itsPrice", lang));
      nodePrice.setItsValue(idx.toString());
      idx++;
      Node<String> nodeCost = new Node<String>();
      result.add(nodeCost);
      nodeCost.setItsName(getSrvI18n().getMsg("itsCost", lang));
      nodeCost.setItsValue(idx.toString());
      idx++;
      Node<String> nodeQuantity = new Node<String>();
      result.add(nodeQuantity);
      nodeQuantity.setItsName(getSrvI18n().getMsg("itsQuantity", lang));
      nodeQuantity.setItsValue(idx.toString());
      idx++;
      Node<String> nodeIsAvailable = new Node<String>();
      result.add(nodeIsAvailable);
      nodeIsAvailable.setItsName(getSrvI18n().getMsg("isAvailable", lang));
      nodeIsAvailable.setItsValue(idx.toString());
      Set<String> ndFlIdNm = new HashSet<String>();
      ndFlIdNm.add("itsId");
      ndFlIdNm.add("itsName");
      pReqVars.put("InvItemTaxCategoryneededFields", ndFlIdNm);
      pReqVars.put("TaxneededFields", ndFlIdNm);
      List<InvItemTaxCategoryLine> allTaxCatsLns = getSrvOrm()
        .retrieveList(pReqVars, InvItemTaxCategoryLine.class);
      pReqVars.remove("InvItemTaxCategoryneededFields");
      pReqVars.remove("TaxneededFields");
      List<Tax> usedTaxes = new ArrayList<Tax>();
      List<InvItemTaxCategory> usedTaxCats = new ArrayList<InvItemTaxCategory>();
      for (InvItemTaxCategoryLine tcl : allTaxCatsLns) {
        boolean txListed = false;
        for (Tax tx : usedTaxes) {
          if (tx.getItsId().equals(tcl.getTax().getItsId())) {
            txListed = true;
            break;
          }
        }
        if (!txListed) {
          usedTaxes.add(tcl.getTax());
        }
        int tci = -1;
        for (InvItemTaxCategory tc : usedTaxCats) {
          if (tc.getItsId().equals(tcl.getItsOwner().getItsId())) {
            tci = usedTaxCats.indexOf(tc);
            break;
          }
        }
        if (tci == -1) {
          usedTaxCats.add(tcl.getItsOwner());
          tcl.getItsOwner().setTaxes(new ArrayList<InvItemTaxCategoryLine>());
          tcl.getItsOwner().getTaxes().add(tcl);
        } else {
          usedTaxCats.get(tci).getTaxes().add(tcl);
        }
      }
      boolean isOnlyTax = true;
      for (InvItemTaxCategory txc : usedTaxCats) {
        if (txc.getTaxes().size() > 1) {
          isOnlyTax = false;
          break;
        }
      }
      if (isOnlyTax) {
        idx++;
        addTaxWr(result, idx.toString(),
          getSrvI18n().getMsg("OnlyTax", lang), lang);
      } else {
        idx++;
        addTaxCatWr(result, idx.toString(),
          getSrvI18n().getMsg("taxCategory", lang), lang);
        Collections.sort(usedTaxes, new CmprHasIdLong<Tax>());
        for (Tax tx : usedTaxes) {
          idx++;
          addTaxWr(result, idx.toString(), tx.getItsName(), lang);
        }
        Collections.sort(usedTaxCats, new CmprHasIdLong<InvItemTaxCategory>());
        for (InvItemTaxCategory txc : usedTaxCats) {
          idx++;
          addTaxCatWr(result, idx.toString(), txc.getItsName(), lang);
        }
      }
      return result;
    }