net.sf.gazpachoquest.services.core.impl.QuestionOptionServiceImpl.java Source code

Java tutorial

Introduction

Here is the source code for net.sf.gazpachoquest.services.core.impl.QuestionOptionServiceImpl.java

Source

/*******************************************************************************
 * 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.core.impl;

import net.sf.gazpachoquest.domain.core.QuestionOption;
import net.sf.gazpachoquest.domain.core.embeddables.QuestionOptionLanguageSettings;
import net.sf.gazpachoquest.domain.i18.QuestionOptionTranslation;
import net.sf.gazpachoquest.repository.QuestionOptionRepository;
import net.sf.gazpachoquest.repository.i18.QuestionOptionTranslationRepository;
import net.sf.gazpachoquest.services.QuestionOptionService;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.Assert;

@Service
public class QuestionOptionServiceImpl extends
        AbstractLocalizedPersistenceService<QuestionOption, QuestionOptionTranslation, QuestionOptionLanguageSettings>
        implements QuestionOptionService {

    @Autowired
    public QuestionOptionServiceImpl(final QuestionOptionRepository repository,
            final QuestionOptionTranslationRepository translationRepository) {
        super(repository, translationRepository, new QuestionOptionTranslation.Builder());
    }

    @Override
    @Transactional(readOnly = false)
    public QuestionOption save(final QuestionOption entity) {
        Assert.state(!entity.isNew(), "QuestionOption must be already persisted. Try by adding to question first.");
        QuestionOption existing = repository.save(entity);
        existing.setLanguage(entity.getLanguage());
        existing.setLanguageSettings(entity.getLanguageSettings());
        return existing;
    }
}