/******************************************************************************* * Copyright (c) 2014 antoniomariasanchez at gmail.com. * All rights reserved. This program and the accompanying materials * are made available under the terms of the GNU Public License v3.0 * which accompanies this distribution, and is available at * http://www.gnu.org/licenses/gpl.html * * Contributors: * antoniomaria - initial API and implementation ******************************************************************************/ package net.sf.gazpachoquest.services.impl; import net.sf.gazpachoquest.domain.support.Invitation; import net.sf.gazpachoquest.repository.InvitationRepository; import net.sf.gazpachoquest.services.InvitationService; import net.sf.gazpachoquest.services.support.AbstractPersistenceService; import org.everit.osgi.transaction.helper.api.TransactionHelper; import org.osgi.service.component.annotations.Component; import org.osgi.service.component.annotations.Reference; @Component public class InvitationServiceImpl extends AbstractPersistenceService<Invitation> implements InvitationService { private TransactionHelper transactionHelper; /** * Set transaction helper. * * @param transactionHelper * helper */ @Reference public final void setTransactionHelper(final TransactionHelper transactionHelper) { this.transactionHelper = transactionHelper; } @Override public Invitation save(Invitation entity) { Invitation result = transactionHelper.required(() -> { Invitation fetched = null; if (entity.isNew()) { fetched = repository.save(entity); } else { fetched = repository.findOne(entity.getId()); fetched.setToken(entity.getToken()); fetched.setStatus(entity.getStatus()); } return fetched; }); return result; } @Reference public void setInvitationRepository(final InvitationRepository repository) { super.repository = repository; } }