net.sf.sze.service.impl.zeugnis.BemerkungServiceImpl.java Source code

Java tutorial

Introduction

Here is the source code for net.sf.sze.service.impl.zeugnis.BemerkungServiceImpl.java

Source

// BemerkungServiceImpl.java
//
// Licensed under the AGPL - http://www.gnu.org/licenses/agpl-3.0.txt
// (c) SZE-Development-Team

package net.sf.sze.service.impl.zeugnis;

import java.util.List;

import javax.annotation.Resource;

import net.sf.sze.dao.api.zeugnis.BemerkungDao;
import net.sf.sze.dao.api.zeugnisconfig.BemerkungsBausteinDao;
import net.sf.sze.model.zeugnis.Bemerkung;
import net.sf.sze.model.zeugnisconfig.BemerkungsBaustein;
import net.sf.sze.service.api.zeugnis.BemerkungService;
import net.sf.sze.util.VariableUtility;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.data.domain.Sort.Order;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

/**
 * Implementation of {@link BemerkungService}.
 */
@Transactional(readOnly = true)
@Service
public class BemerkungServiceImpl implements BemerkungService {

    /** The bemerkung-Dao. */
    @Resource
    private BemerkungDao bemerkungDao;

    /** The {@link BemerkungsBausteinDao}. */
    @Resource
    private BemerkungsBausteinDao bemerkungsBausteinDao;

    /**
     * {@inheritDoc}
     */
    @Override
    public Page<Bemerkung> getAllBemerkung() {
        return bemerkungDao.findAll((PageRequest) null);
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public Page<Bemerkung> getBemerkung(int skip, int count, Order... order) {
        final Sort sort = (order.length > 0) ? new Sort(order) : null;
        final PageRequest pr = new PageRequest(skip / count, count, sort);
        return this.getBemerkung(pr);
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public Page<Bemerkung> getBemerkung(Pageable page) {
        return bemerkungDao.findAll(page);
    }

    /**
     * {@inheritDoc}
     */
    @Override
    @Transactional(readOnly = false)
    public Bemerkung save(Bemerkung bemerkung) {
        bemerkung.setFreiText(
                VariableUtility.insertVariables(bemerkung.getFreiText(), bemerkung.getZeugnis().getSchueler()));

        return bemerkungDao.save(bemerkung);

    }

    /**
     * {@inheritDoc}
     */
    @Override
    public Bemerkung read(Long bemerkungId) {
        return bemerkungDao.findOne(bemerkungId);
    }

    /**
     * {@inheritDoc}
     */
    @Override
    @Transactional(readOnly = false)
    public void delete(Long bemerkungId) {
        final Bemerkung oldBemerkung = bemerkungDao.findOne(bemerkungId);
        bemerkungDao.delete(oldBemerkung);
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public long getNrOfBemerkungs() {
        return bemerkungDao.count();
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public List<BemerkungsBaustein> getAllBausteine(Bemerkung bemerkung) {
        final List<BemerkungsBaustein> bausteine = bemerkungsBausteinDao.findAllByAktivTrueOrderByNameAsc();
        final boolean gotBausteine = bemerkung != null && bemerkung.getBaustein() != null;
        if (gotBausteine && !bausteine.contains(bemerkung.getBaustein())) {
            bausteine.add(bemerkung.getBaustein());
        }
        return bausteine;
    }
}