Link to home
Start Free TrialLog in
Avatar of Zolf
ZolfFlag for United Arab Emirates

asked on

Behaviour of Java List

Hello there,

I have this requirement to show the amount with thousand separator. I have this POJO class with these two methods which I call according to my requirements
public Integer getTotalAmount() {
    return totalAmount;
}

public String getTotalAmountWithSeparator() {
    return String.format("%,d", totalAmount);
}

public void setTotalAmount(Integer totalAmount) {
    this.totalAmount = totalAmount;
}

Open in new window

now when I use this method getTotalAmountWithSeparator() in my another class which looks like this and I do a println to see if the amount is being shown properly(which it does).


List<SupplierOrderDetails> list = SupplierOrderDetailBussinessLogic.getInstance().getSupplierOrderDetailsFromsupplierOrder(supplierOrder);

      DataProviderBuilder dpb = new DataProviderBuilder();

    // add heading data
    dpb.add("so", supplierOrder.getSupplierOrderNo());
    dpb.add("sn", supplierOrder.getSupplier().getPerName());
    dpb.add("sec", supplierOrder.getSection().getAlternateName());
    dpb.add("od", supplierOrder.getSupplierOrderCreated().toString());

    // add table data
    dpb.addJavaObject(list, "data");

Open in new window


here is the actual method getSupplierOrderDetailsFromsupplierOrder(supplierOrder); which gets the data from the db.


@SuppressWarnings("unchecked")
public List<SupplierOrderDetails> getSupplierOrderDetailsFromsupplierOrder(SupplierOrder supplierOrderDetails){
    Session hibernateSession = HibernateUtills.getInstance().getHibernateSession();
    Criteria criteria = hibernateSession.createCriteria(SupplierOrderDetails.class);
    criteria.add(Restrictions.eq("supplierOrderID", supplierOrderDetails));
    List<SupplierOrderDetails> models = criteria.list();

    System.out.println(" models.size()     " + models.size());

    for (int i = 0; i < models.size(); i++)
    {
        if (models.get(i).getId() != null)
        {
            models.get(i).getProductID().getProductCode();
            models.get(i).getProductID().getBrandName();
            models.get(i).getPurchasePrice();
            models.get(i).getOrderQty();
            models.get(i).getTotalAmountWithSeparator();
            System.out.println(models.get(i).getProductID().getBrandName() + "  TotalAmount      " + models.get(i).getTotalAmountWithSeparator());

        }
        // System.out.println(models.get(i).getPurchasePrice());
    }
    return models;
} 

Open in new window

but when I do a println of the list data here,it does not show the separator in the amount why?????what am I doing wrong
dp = getSupplierOrderData(Long.parseLong(supplierOrderId));
System.out.println("DATA    "+dp.getString("data"));

Open in new window

ASKER CERTIFIED SOLUTION
Avatar of dpearson
dpearson

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of Zolf

ASKER

Doug :

thanks for your comments

this is another method which looks like this

private DataProvider getSupplierOrderData(Long supplierorderid)
      {
            SupplierOrder supplierOrder = SupplierOrderBussinessLogic.getInstance().getSupplierOrderById(supplierorderid);
            List<SupplierOrderDetails> list = SupplierOrderDetailBussinessLogic.getInstance().getSupplierOrderDetailsFromsupplierOrder(supplierOrder);

            System.out.println(" list.size()     " + list.size());
            

            for (SupplierOrderDetails supplierOrderDetails : list)
            {
                  Integer totalAmount = supplierOrderDetails.getTotalAmount();
                  System.out.println("totalAmount      !!!!      "+supplierOrderDetails.getTotalAmountWithSeparator());
                  Integer orderQty = supplierOrderDetails.getOrderQty();
                  Integer purchasePrice = supplierOrderDetails.getPurchasePrice();
                  String brandName = supplierOrderDetails.getProductID().getBrandName();
                  Integer productCode = supplierOrderDetails.getProductID().getProductCode();
                  String supplierEngName = supplierOrderDetails.getSupplierOrderID().getSupplier().getEngName();
                  String section = supplierOrderDetails.getSupplierOrderID().getSupplier().getSection().getName();
                  String supplierOrderNo = supplierOrderDetails.getSupplierOrderID().getSupplierOrderNo();
                  Date supplierOrderCreated = supplierOrderDetails.getSupplierOrderID().getSupplierOrderCreated();

                  System.out.println(" supplierOrderDetails     " + supplierOrderDetails.toString());
            }

            DataProviderBuilder dpb = new DataProviderBuilder();

            // add heading data
            dpb.add("so", supplierOrder.getSupplierOrderNo());
            dpb.add("sn", supplierOrder.getSupplier().getPerName());
            dpb.add("sec", supplierOrder.getSection().getAlternateName());

            dpb.add("od", supplierOrder.getSupplierOrderCreated().toString());

            // add table data
            dpb.addJavaObject(list, "data");

            return dpb.getDataProvider();
      }
Avatar of Zolf

ASKER

your comments helped me to find the problem. thanks a lot