package com.ciandt.techgallery.service.transformer; import com.google.api.server.spi.config.Transformer; import com.googlecode.objectify.Key; import com.googlecode.objectify.Ref; import com.ciandt.techgallery.persistence.model.TechGalleryUser; import com.ciandt.techgallery.persistence.model.Technology; import com.ciandt.techgallery.persistence.model.TechnologyComment; import com.ciandt.techgallery.persistence.model.TechnologyRecommendation; import com.ciandt.techgallery.service.model.TechnologyRecommendationTO; public class TechnologyRecommendationTransformer implements Transformer<TechnologyRecommendation, TechnologyRecommendationTO> { @Override public TechnologyRecommendation transformFrom(TechnologyRecommendationTO arg0) { if (arg0.getActive() == null || arg0.getActive() == true) { TechnologyRecommendation product = new TechnologyRecommendation(); product.setActive(true); product.setScore(arg0.getScore()); if (arg0.getComment() != null) { Key<TechnologyComment> commentKey = Key.create(TechnologyComment.class, arg0.getComment().getId()); product.setComment(Ref.create(commentKey)); } else { product.setComment(null); } if (arg0.getTechnology() != null) { Key<Technology> technologyKey = Key.create(Technology.class, arg0.getTechnology().getId()); product.setTechnology(Ref.create(technologyKey)); } else { product.setTechnology(null); } if (arg0.getRecommender() != null) { Key<TechGalleryUser> tgUserKey = Key.create(arg0.getRecommender().getEmail()); product.setRecommender(Ref.create(tgUserKey)); } else { product.setRecommender(null); } return product; } else { return null; } } @Override public TechnologyRecommendationTO transformTo(TechnologyRecommendation arg0) { if (arg0.getActive()) { TechnologyRecommendationTO product = new TechnologyRecommendationTO(); product.setComment(arg0.getComment().get()); product.setActive(arg0.getActive()); product.setScore(arg0.getScore()); product.setTechnology(arg0.getTechnology().get()); product.setRecommender(arg0.getRecommender().get()); return product; } else { return null; } } }