package com.syzton.sunread.assembler.book; import org.joda.time.DateTime; import com.syzton.sunread.dto.book.BookDTO; import com.syzton.sunread.dto.book.BookExtraDTO; import com.syzton.sunread.model.book.Book; import com.syzton.sunread.model.book.BookExtra; /** * Created by jerry on 3/16/15. */ public class BookAssembler { // public Book fromDTOtoEntireBook(final BookDTO bookDTO,final CategoryRepository categoryRepository){ // // Set<Category> categorySet = new HashSet<>(); // // for(Long caId: bookDTO.getCategories()){ // categorySet.add(categoryRepository.findOne(caId)); // } // // BookExtra extra = this.fromDTOToExtra(bookDTO); // extra.setCategories(categorySet); // // // Book book = this.fromDTOtoBookWithExtra(bookDTO); // book.setExtra(extra); // return book; // } public Book fromDTOtoBookWithExtra(final BookDTO bookDTO){ BookExtra extra = this.fromDTOToExtra(bookDTO.getExtra()); Book book = new Book(); fillBook(bookDTO, book); book.setExtra(extra); return book; } public void fillBook(BookDTO bookDTO, Book book) { book.setName(bookDTO.getName()); book.setIsbn(bookDTO.getIsbn()); book.setAuthor(bookDTO.getAuthor()); book.setPublisher(bookDTO.getPublisher()); book.setCoin(bookDTO.getCoin()); book.setDescription(bookDTO.getDescription()); book.setPoint(bookDTO.getPoint()); book.setPublicationDate(new DateTime(bookDTO.getPublicationDate())); book.setPictureUrl(bookDTO.getPictureUrl()); book.setWordCount(bookDTO.getWordCount()); book.setPageCount(bookDTO.getPageCount()); book.setAuthorIntroduction(bookDTO.getAuthorIntroduction()); book.setPrice(bookDTO.getPrice()); book.setHighPrice(bookDTO.getHighPrice()); book.setEvaluationNum(bookDTO.getEvaluationNum()); book.setBinding(bookDTO.getBinding()); } public BookExtra fromDTOToExtra(final BookExtraDTO bookExtraDTO){ BookExtra extra = new BookExtra(); fillBookExta(bookExtraDTO, extra); return extra; } public void fillBookExta(BookExtraDTO bookExtraDTO, BookExtra extra) { extra.setLanguage(bookExtraDTO.getLanguage()); extra.setLevel(bookExtraDTO.getLevel()); extra.setLiterature(bookExtraDTO.getLiterature()); extra.setGrade(bookExtraDTO.getGrade()); extra.setCategory(bookExtraDTO.getCategory()); extra.setAgeRange(bookExtraDTO.getAgeRange()); extra.setPointRange(bookExtraDTO.getPointRange()); } }