package org.killbill.billing.catalog.rules;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlIDREF;
import org.killbill.billing.catalog.DefaultPriceList;
import org.killbill.billing.catalog.DefaultProduct;
import org.killbill.billing.catalog.api.BillingPeriod;
import org.killbill.billing.catalog.api.ProductCategory;
public class CasePriceList extends Case<DefaultPriceList> {
@XmlElement(required = false, name = "fromProduct")
@XmlIDREF
private DefaultProduct fromProduct;
@XmlElement(required = false, name = "fromProductCategory")
private ProductCategory fromProductCategory;
@XmlElement(required = false, name = "fromBillingPeriod")
private BillingPeriod fromBillingPeriod;
@XmlElement(required = false, name = "fromPriceList")
@XmlIDREF
private DefaultPriceList fromPriceList;
@XmlElement(required = true, name = "toPriceList")
@XmlIDREF
private DefaultPriceList toPriceList;
public DefaultProduct getProduct() {
return fromProduct;
}
public ProductCategory getProductCategory() {
return fromProductCategory;
}
public BillingPeriod getBillingPeriod() {
return fromBillingPeriod;
}
public DefaultPriceList getPriceList() {
return fromPriceList;
}
protected DefaultPriceList getResult() {
return toPriceList;
}
protected CasePriceList setProduct(final DefaultProduct product) {
this.fromProduct = product;
return this;
}
protected CasePriceList setProductCategory(final ProductCategory productCategory) {
this.fromProductCategory = productCategory;
return this;
}
protected CasePriceList setBillingPeriod(final BillingPeriod billingPeriod) {
this.fromBillingPeriod = billingPeriod;
return this;
}
protected CasePriceList setPriceList(final DefaultPriceList priceList) {
this.fromPriceList = priceList;
return this;
}
protected CasePriceList setToPriceList(final DefaultPriceList toPriceList) {
this.toPriceList = toPriceList;
return this;
}
}