package org.nightlabs.jfire.simpletrade.ui.articlecontainer.detail; import java.rmi.RemoteException; import java.util.ArrayList; import java.util.Collection; import javax.naming.NamingException; import javax.security.auth.login.LoginException; import org.nightlabs.jdo.NLJDOHelper; import org.nightlabs.jfire.accounting.id.TariffID; import org.nightlabs.jfire.base.JFireEjb3Factory; import org.nightlabs.jfire.base.login.ui.Login; import org.nightlabs.jfire.simpletrade.SimpleTradeManagerRemote; import org.nightlabs.jfire.store.NotAvailableException; import org.nightlabs.jfire.store.id.ProductTypeID; import org.nightlabs.jfire.trade.Article; import org.nightlabs.jfire.trade.id.OfferID; import org.nightlabs.jfire.trade.id.SegmentID; public class RecurringArticleAdder extends ArticleAdder { @Override public Collection<? extends Article> createArticles(SegmentID segmentID, OfferID offerID, ProductTypeID productTypeID, int quantity, TariffID tariffID) throws NotAvailableException, RemoteException, LoginException, NamingException { Collection<ProductTypeID> productTypeIDs = new ArrayList<ProductTypeID>( quantity); for (int i = 0; i < quantity; i++) { productTypeIDs.add(productTypeID); } SimpleTradeManagerRemote stm = JFireEjb3Factory.getRemoteBean(SimpleTradeManagerRemote.class, Login.getLogin().getInitialContextProperties()); Collection<? extends Article> articles = stm.createArticles( segmentID, offerID, productTypeIDs, tariffID, getFetchGroups(), NLJDOHelper.MAX_FETCH_DEPTH_NO_LIMIT); return articles; } }