package com.softwaremill.common.cdi.autofactory.field; import com.softwaremill.common.cdi.autofactory.CreatedWith; import com.softwaremill.common.cdi.autofactory.Discounts; import com.softwaremill.common.cdi.autofactory.PriceCalculator; import com.softwaremill.common.cdi.autofactory.Product; import javax.inject.Inject; /** * @author Adam Warski (adam at warski dot org) */ @CreatedWith(PriceCalculator.Factory.class) public class PriceCalculatorFieldInjectionImpl implements PriceCalculator { @Inject private Discounts discounts; private final Product product; public PriceCalculatorFieldInjectionImpl(Product product) { this.product = product; } @Override public int getFinalPrice() { return product.getBasePrice() - discounts.getNormalDiscount(); } }