com.siriusit.spezg.multilib.service.spring.SpringLoanService.java Source code

Java tutorial

Introduction

Here is the source code for com.siriusit.spezg.multilib.service.spring.SpringLoanService.java

Source

/**
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.siriusit.spezg.multilib.service.spring;

import java.util.Calendar;
import java.util.Date;
import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.siriusit.spezg.multilib.domain.Loan;
import com.siriusit.spezg.multilib.domain.Person;
import com.siriusit.spezg.multilib.domain.Unit;
import com.siriusit.spezg.multilib.service.LoanService;
import com.siriusit.spezg.multilib.storage.LoanRepository;

/**
 * 
 * @author Thao Nguyen <thao.nguyen@SiriusIT.com>
 */

@Service("loanService")
public class SpringLoanService implements LoanService {

    @Resource
    private LoanRepository loanRepository;

    public SpringLoanService() {
    }

    public SpringLoanService(LoanRepository loanRepository) {
        this.loanRepository = loanRepository;
    }

    @Override
    public List<? extends Loan> findLoanUnitsBy(Person person) {
        return loanRepository.findLoanUnitsBy(person);
    }

    @Override
    @Transactional
    public Loan storeLoan(Unit unit, Person person) {
        Date dateOut = new Date();
        Calendar deadline = Calendar.getInstance();
        deadline.roll(Calendar.MONTH, 1);
        return loanRepository.createLoan(person, unit, dateOut, null, deadline.getTime());
    }

    @Override
    public List<? extends Loan> findLoanByOwner(Person owner) {
        return loanRepository.findLoanByOwner(owner);
    }

}