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.Skill;
import com.ciandt.techgallery.persistence.model.TechGalleryUser;
import com.ciandt.techgallery.persistence.model.Technology;
import com.ciandt.techgallery.service.model.SkillResponse;
/**
* SkillConverter methods.
*
* @author Felipe Goncalves de Castro
*
*/
public class SkillConverter implements Transformer<Skill, SkillResponse> {
/**
* Transform entity from datastore into response entity which is transient.
*
* @param entity from datastore
* @return transient entity
*/
@Override
public SkillResponse transformTo(Skill entity) {
SkillResponse skillResponse = new SkillResponse();
skillResponse.setId(entity.getId());
skillResponse.setValue(entity.getValue());
skillResponse.setTechnology(entity.getTechnologyEntity().getId());
skillResponse.setCreationDate(entity.getCreationDate());
return skillResponse;
}
/**
* Transform entity from response which is transient into datastore entity which can be persisted.
*
* @param transient entity
* @return entity from datastore
*/
@Override
public Skill transformFrom(SkillResponse arg0) {
Skill product = new Skill();
product.setId(arg0.getId());
product.setValue(arg0.getValue());
if (arg0.getTechnology() != null) {
Key<Technology> techKey = Key.create(Technology.class, arg0.getTechnology());
product.setTechnology(Ref.create(techKey));
} else {
product.setTechnology(null);
}
if (arg0.getUser() != null) {
Key<TechGalleryUser> userKey = Key.create(arg0.getUser());
product.setTechGalleryUser(Ref.create(userKey));
} else {
product.setTechGalleryUser(null);
}
product.setCreationDate(arg0.getCreationDate());
return product;
}
}