/** * TNTConcept Easy Enterprise Management by Autentia Real Bussiness Solution S.L. * Copyright (C) 2007 Autentia Real Bussiness Solution S.L. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package com.autentia.tnt.manager.contacts; import java.util.LinkedHashSet; import java.util.List; import java.util.Set; import org.apache.commons.lang.SerializationUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import com.autentia.tnt.businessobject.Interaction; import com.autentia.tnt.businessobject.Offer; import com.autentia.tnt.businessobject.OfferCost; import com.autentia.tnt.businessobject.OfferRole; import com.autentia.tnt.dao.SortCriteria; import com.autentia.tnt.dao.hibernate.OfferDAO; import com.autentia.tnt.dao.search.OfferSearch; import com.autentia.tnt.util.SpringUtils; public class OfferManager { /* Offer - generated by stajanov (do not edit/delete) */ public Offer duplicateOffer (final Offer offer) { final Set<Interaction> interactions = new LinkedHashSet<Interaction>(); final Set<OfferRole> offerRoles = new LinkedHashSet<OfferRole>(); final Set<OfferCost> offerCosts = new LinkedHashSet<OfferCost>(); // copy simple data and delete identificative info final Offer duplicatedOffer = (Offer)SerializationUtils.clone(offer); duplicatedOffer.setId(null); duplicatedOffer.setNumber(null); // copy interactions if (offer.getInteractions() != null) { for (Interaction interaction: offer.getInteractions()) { Interaction duplicatedInteraction = (Interaction)SerializationUtils.clone(interaction); duplicatedInteraction.setId(null); duplicatedInteraction.setOffer(duplicatedOffer); interactions.add(duplicatedInteraction); } } duplicatedOffer.setInteractions(interactions); // copy roles if (offer.getRoles() != null) { for (OfferRole offerRole: offer.getRoles()) { OfferRole duplicatedRole = (OfferRole)SerializationUtils.clone(offerRole); duplicatedRole.setId(null); duplicatedRole.setOffer(duplicatedOffer); offerRoles.add(duplicatedRole); } } duplicatedOffer.setRoles(offerRoles); // copy costs if (offer.getCosts() != null) { for (OfferCost offerCost: offer.getCosts()) { OfferCost duplicatedCost = (OfferCost)SerializationUtils.clone(offerCost); duplicatedCost.setId(null); duplicatedCost.setOffer(duplicatedOffer); offerCosts.add(duplicatedCost); } } duplicatedOffer.setCosts(offerCosts); return duplicatedOffer; } /** Logger */ private static final Log log = LogFactory.getLog(OfferManager.class); /** Offer DAO **/ private OfferDAO offerDAO; /** * Get default OfferManager as defined in Spring's configuration file. * @return the default singleton OfferManager */ public static OfferManager getDefault() { return (OfferManager)SpringUtils.getSpringBean("managerOffer"); } /** * Empty constructor needed by CGLIB (Spring AOP) */ protected OfferManager() { } /** * Default constructor * @deprecated do not construct managers alone: use Spring's declared beans */ public OfferManager( OfferDAO offerDAO ) { this.offerDAO = offerDAO; } /** * List offers. * @param search search filter to apply * @param sort sorting criteria * @return the list of all offers sorted by requested criterion */ public List<Offer> getAllEntities(OfferSearch search, SortCriteria sort){ return offerDAO.search( search, sort ); } /** * Get offer by primary key. * @return offer selected by id. */ public Offer getEntityById(int id){ return offerDAO.getById(id); } /** * Insert offer. */ public void insertEntity(Offer offer) { offerDAO.insert(offer); } /** * Update offer. */ public void updateEntity(Offer offer) { offerDAO.update(offer); } /** * Delete offer. */ public void deleteEntity(Offer offer) { offerDAO.delete(offer); } /* Offer - generated by stajanov (do not edit/delete) */ }