Calculation Based on Model : Calculation « Velocity « Java






Calculation Based on Model


import java.io.StringWriter;
import java.io.Writer;
import java.util.ArrayList;
import java.util.Collection;

import org.apache.velocity.Template;
import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.Velocity;

public class ProductList {

    public static void main(String[] args) throws Exception {
        Velocity.init();
        
        Template t = Velocity.getTemplate("./src/model.vm");
        
        VelocityContext ctx = new VelocityContext();
       
        Collection products = new ArrayList();
        products.add(new Product("Product 1", 142.919));
        products.add(new Product("Product 2", 133.199));
        products.add(new Product("Product 3", 112.991));

        ProductListModel model = new ProductListModel(products);
        ctx.put("model", model);
        
        Writer writer = new StringWriter();
        t.merge(ctx, writer);
        
        System.out.println(writer);
    }
}
-------------------------------------------------------------------------------------

import java.util.Collection;
import java.util.Iterator;

public class ProductListModel {

  private Collection productList = null;

  private double totalPrice = Double.MIN_VALUE;

  public ProductListModel(Collection aProductList) {
    productList = aProductList;
  }

  public Collection getProductList() {
    return productList;
  }

  public void setProductList(Collection aProductList) {
    productList = aProductList;
  }

  public double getTotalPrice() {
    if (totalPrice == Double.MIN_VALUE) {

      totalPrice = 0;
      Iterator itr = productList.iterator();

      while (itr.hasNext()) {
        Product p = (Product) itr.next();
        totalPrice += p.getPrice();
      }
    }

    return totalPrice;
  }
}

-------------------------------------------------------------------------------------

public class Product {

    private String name;
    private double price;
    
    public Product(String aName, double aPrice) {
        name = aName;
        price = aPrice;
    }
    
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public double getPrice() {
        return price;
    }
    public void setPrice(double price) {
        this.price = price;
    }
}

-------------------------------------------------------------------------------------
#foreach($product in $model.productList)
$product.Name    $$product.Price
#end

Total Price: $$model.totalPrice

           
       








velocity-CalculationBasedonModel.zip( 876 k)

Related examples in the same category

1.Calculation In Java