Coverage Report - org.kuali.student.core.comment.service.impl.CommentServiceAssembler
 
Classes in this File Line Coverage Branch Coverage Complexity
CommentServiceAssembler
89%
86/96
72%
16/22
2.286
 
 1  
 /**
 2  
  * Copyright 2010 The Kuali Foundation Licensed under the
 3  
  * Educational Community License, Version 2.0 (the "License"); you may
 4  
  * not use this file except in compliance with the License. You may
 5  
  * obtain a copy of the License at
 6  
  *
 7  
  * http://www.osedu.org/licenses/ECL-2.0
 8  
  *
 9  
  * Unless required by applicable law or agreed to in writing,
 10  
  * software distributed under the License is distributed on an "AS IS"
 11  
  * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
 12  
  * or implied. See the License for the specific language governing
 13  
  * permissions and limitations under the License.
 14  
  */
 15  
 
 16  
 package org.kuali.student.core.comment.service.impl;
 17  
 
 18  
 import java.util.ArrayList;
 19  
 import java.util.List;
 20  
 
 21  
 import org.kuali.student.core.comment.dao.CommentDao;
 22  
 import org.kuali.student.core.comment.dto.CommentInfo;
 23  
 import org.kuali.student.core.comment.dto.CommentTypeInfo;
 24  
 import org.kuali.student.core.comment.dto.TagInfo;
 25  
 import org.kuali.student.core.comment.dto.TagTypeInfo;
 26  
 import org.kuali.student.core.comment.entity.Comment;
 27  
 import org.kuali.student.core.comment.entity.CommentAttribute;
 28  
 import org.kuali.student.core.comment.entity.CommentRichText;
 29  
 import org.kuali.student.core.comment.entity.CommentType;
 30  
 import org.kuali.student.core.comment.entity.Reference;
 31  
 import org.kuali.student.core.comment.entity.ReferenceType;
 32  
 import org.kuali.student.core.comment.entity.Tag;
 33  
 import org.kuali.student.core.comment.entity.TagAttribute;
 34  
 import org.kuali.student.core.comment.entity.TagType;
 35  
 import org.kuali.student.core.dto.ReferenceTypeInfo;
 36  
 import org.kuali.student.core.exceptions.DoesNotExistException;
 37  
 import org.kuali.student.core.exceptions.InvalidParameterException;
 38  
 import org.kuali.student.core.service.impl.BaseAssembler;
 39  
 import org.springframework.beans.BeanUtils;
 40  
 
 41  
 /**
 42  
  * This is a description of what this class does - lindholm don't forget to fill this in.
 43  
  *
 44  
  * @author Kuali Rice Team (kuali-rice@googlegroups.com)
 45  
  *
 46  
  */
 47  0
 public class CommentServiceAssembler extends BaseAssembler {
 48  
 
 49  
     public static CommentInfo toCommentInfo(Comment entity) {
 50  11
         CommentInfo dto = new CommentInfo();
 51  
 
 52  11
         BeanUtils.copyProperties(entity, dto,
 53  
                 new String[] { "commentText", "attributes", "type", "metaInfo" });
 54  
 
 55  11
         dto.setCommentText(toRichTextInfo(entity.getCommentText()));
 56  11
         dto.setAttributes(toAttributeMap(entity.getAttributes()));
 57  11
         dto.setMetaInfo(toMetaInfo(entity.getMeta(), entity.getVersionNumber()));
 58  11
         dto.setType(entity.getType().getId());
 59  
 
 60  11
         return dto;
 61  
     }
 62  
 
 63  
     public static List<CommentInfo> toCommentInfos(List<Comment> entities) {
 64  2
         List<CommentInfo> dtos = new ArrayList<CommentInfo>(entities.size());
 65  2
         for (Comment entity : entities) {
 66  3
             dtos.add(toCommentInfo(entity));
 67  
         }
 68  2
         return dtos;
 69  
     }
 70  
 
 71  
     public static TagInfo toTagInfo(Tag entity) {
 72  11
         TagInfo dto = new TagInfo();
 73  11
         BeanUtils.copyProperties(entity, dto, new String[]{"attributes","type","reference"});
 74  11
         dto.setAttributes(toAttributeMap(entity.getAttributes()));
 75  11
         dto.setType(entity.getType().getId());
 76  11
         dto.setReferenceId(entity.getReferennce().getReferenceId());
 77  11
         dto.setReferenceTypeKey(entity.getReferennce().getReferenceType().getId());
 78  11
         return dto;
 79  
 
 80  
     }
 81  
 
 82  
     public static List<TagInfo> toTagInfos(List<Tag> entries){
 83  3
         List<TagInfo> dtos = new ArrayList<TagInfo>(entries.size());
 84  3
         for(Tag entry: entries){
 85  5
             dtos.add(toTagInfo(entry));
 86  
         }
 87  3
         return dtos;
 88  
     }
 89  
 
 90  
     public static TagTypeInfo toTagTypeInfo(TagType entity){
 91  1
         TagTypeInfo dto = new TagTypeInfo();
 92  1
         BeanUtils.copyProperties(entity, dto,new String[]{"attributes"});
 93  1
         dto.setAttributes(toAttributeMap(entity.getAttributes()));
 94  1
         return dto;
 95  
     }
 96  
 
 97  
     public static List<TagTypeInfo> toTagTypeInfos(List<TagType> entries){
 98  1
         List<TagTypeInfo> dtos = new ArrayList<TagTypeInfo>(entries.size());
 99  1
         for(TagType entity: entries){
 100  1
             dtos.add(toTagTypeInfo(entity));
 101  
         }
 102  
 
 103  1
         return dtos;
 104  
     }
 105  
 
 106  
     public static List<CommentTypeInfo> toCommentTypeInfos(List<CommentType> entities) {
 107  1
         List<CommentTypeInfo> dtos = new ArrayList<CommentTypeInfo>(entities.size());
 108  1
         for (CommentType entity : entities) {
 109  2
             dtos.add(toCommentTypeInfo(entity));
 110  
         }
 111  1
         return dtos;
 112  
     }
 113  
 
 114  
     private static CommentTypeInfo toCommentTypeInfo(CommentType entity) {
 115  2
             CommentTypeInfo dto = new CommentTypeInfo();
 116  2
         BeanUtils.copyProperties(entity, dto,new String[]{"attributes"});
 117  2
         dto.setAttributes(toAttributeMap(entity.getAttributes()));
 118  2
         return dto;
 119  
     }
 120  
 
 121  
     public static Comment toComment(boolean isUpdate,CommentInfo dto,CommentDao dao) throws InvalidParameterException, DoesNotExistException{
 122  
 
 123  4
         Comment entity = new Comment();
 124  4
         BeanUtils.copyProperties(dto,entity,new String[]{"reference","commentText", "attributes", "type", "metaInfo"});
 125  4
         entity.setAttributes(toGenericAttributes(CommentAttribute.class,dto.getAttributes(),entity,dao));
 126  4
         Reference reference = dao.getReference(dto.getReferenceId(), dto.getReferenceTypeKey());
 127  4
         if (reference == null) {
 128  0
             throw new InvalidParameterException(
 129  
                     "Reference does not exist for id: " + dto.getReferenceId());
 130  
         }
 131  4
         entity.setReference(reference);
 132  4
         CommentType type = dao.fetch(CommentType.class,dto.getType());
 133  4
         if (type == null) {
 134  0
             throw new InvalidParameterException(
 135  
                     "Tag Type does not exist for id: " + dto.getType());
 136  
         }
 137  4
         entity.setType(type);
 138  4
         entity.setCommentText(toRichText(CommentRichText.class, dto.getCommentText()));
 139  4
         entity.setAttributes(toGenericAttributes(CommentAttribute.class, dto.getAttributes(), entity, dao));
 140  4
                 dto.setMetaInfo(toMetaInfo(entity.getMeta(), entity.getVersionNumber()));
 141  4
         return entity;
 142  
     }
 143  
     public static Tag toTag(boolean isUpdate,TagInfo dto, CommentDao dao) throws InvalidParameterException, DoesNotExistException{
 144  
 
 145  4
         Tag entity = new Tag();
 146  4
         BeanUtils.copyProperties(dto,entity,new String[]{"reference","type","attributes"});
 147  4
         entity.setAttributes(toGenericAttributes(TagAttribute.class,dto.getAttributes(),entity,dao));
 148  
 
 149  4
         Reference reference = dao.getReference(dto.getReferenceId(), dto.getReferenceTypeKey());
 150  4
         if (reference == null) {
 151  0
             throw new InvalidParameterException(
 152  
                     "Reference does not exist for id: " + dto.getReferenceId());
 153  
         }
 154  4
         entity.setReference(reference);
 155  4
         TagType type = dao.fetch(TagType.class,dto.getType());
 156  4
         if (type == null) {
 157  0
             throw new InvalidParameterException(
 158  
                     "Tag Type does not exist for id: " + dto.getType());
 159  
         }
 160  4
         entity.setType(type);
 161  4
         return entity;
 162  
     }
 163  
 
 164  
     public static Comment toComment(String referenceId,
 165  
                         String referenceTypeKey, CommentInfo dto,
 166  
                         CommentDao commentDao) throws InvalidParameterException, DoesNotExistException {
 167  0
             Comment entity = new Comment();
 168  
 
 169  0
             return toComment(entity, referenceId, referenceTypeKey, dto, commentDao);
 170  
     }
 171  
 
 172  
     public static Comment toComment(Comment entity, String referenceId,
 173  
                         String referenceTypeKey, CommentInfo dto, CommentDao commentDao)
 174  
                         throws InvalidParameterException, DoesNotExistException {
 175  1
                 BeanUtils.copyProperties(dto, entity, new String[] { "id, reference",
 176  
                                 "commentText", "attributes", "type", "metaInfo" });
 177  1
                 entity.setCommentText(toRichText(CommentRichText.class, dto.getCommentText()));
 178  
 
 179  1
                 entity.setAttributes(toGenericAttributes(CommentAttribute.class, dto
 180  
                                 .getAttributes(), entity, commentDao));
 181  1
                 CommentType type = commentDao.fetch(CommentType.class, dto.getType());
 182  1
                 if (type == null) {
 183  0
                         throw new InvalidParameterException(
 184  
                                         "Tag Type does not exist for id: " + dto.getType());
 185  
                 }
 186  1
                 entity.setType(type);
 187  1
                 dto.setMetaInfo(toMetaInfo(entity.getMeta(), entity.getVersionNumber()));
 188  
 
 189  1
                 Reference reference = commentDao.getReference(referenceId,
 190  
                                 referenceTypeKey);
 191  1
                 if (reference == null) {
 192  1
             reference = new Reference();
 193  1
             reference.setReferenceId(referenceId);
 194  
                         try {
 195  1
                                 ReferenceType referenceType = commentDao.fetch(ReferenceType.class, referenceTypeKey);
 196  1
                     reference.setReferenceType(referenceType);
 197  1
                     commentDao.create(reference);
 198  0
                         } catch (DoesNotExistException e) {
 199  0
                                 throw new InvalidParameterException(e.getMessage());
 200  1
                         }
 201  
 
 202  
                 }
 203  1
                 entity.setReference(reference);
 204  
 
 205  1
                 return entity;
 206  
     }
 207  
 
 208  
         public static List<ReferenceTypeInfo> toReferenceTypeInfos(
 209  
                         List<ReferenceType> entities) {
 210  1
                 List<ReferenceTypeInfo> dtos = new ArrayList<ReferenceTypeInfo>(entities.size());
 211  1
                 for (ReferenceType entity : entities) {
 212  2
                         dtos.add(toReferenceType(entity));
 213  
                 }
 214  1
                 return dtos;
 215  
 
 216  
         }
 217  
 
 218  
         private static ReferenceTypeInfo toReferenceType(ReferenceType entity) {
 219  2
                 ReferenceTypeInfo dto = new ReferenceTypeInfo();
 220  
 
 221  2
         BeanUtils.copyProperties(entity, dto,new String[]{"attributes"});
 222  2
         dto.setAttributes(toAttributeMap(entity.getAttributes()));
 223  2
         return dto;
 224  
         }
 225  
         
 226  
 }