package com.jasamedika.medifirst2000.converter; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.List; import java.util.Map; import javax.persistence.Column; import javax.persistence.JoinColumn; import javax.persistence.OneToMany; import org.springframework.stereotype.Component; import com.google.gson.Gson; import com.jasamedika.medifirst2000.converter.base.BaseVoConverter; import com.jasamedika.medifirst2000.entities.TingkatResiko; import com.jasamedika.medifirst2000.vo.TingkatResikoVO; @Component public class TingkatResikoConverter implements BaseVoConverter{ @Override public TingkatResiko transferVOToModel(TingkatResikoVO vo, TingkatResiko model) { if (null == model) model = new TingkatResiko(); try { String[] fieldsToInclude = null; Map serialized = vo.serialize(fieldsToInclude,vo.getClass().getName()); Gson gson = new Gson(); String json = gson.toJson(serialized); model = gson.fromJson(json, TingkatResiko.class); } catch (Exception e) { e.printStackTrace(); } return model; } @Override public List transferListOfModelToListOfVO(List models, List vos) { if (null == vos) vos = new ArrayList(); if (null == models) return vos; for (TingkatResiko pegawai : models) { TingkatResikoVO vo = new TingkatResikoVO(); vo=transferModelToVO(pegawai, vo); vos.add(vo); } return vos; } @Override public TingkatResikoVO transferModelToVO(TingkatResiko model, TingkatResikoVO vo) { if (null == vo) vo = new TingkatResikoVO(); try { List fieldsToInclude = new ArrayList(); for (Field field : model.GetFields(model.getClass())) { String str = field.getName(); String name = field.getName(); if(name.equals("serialVersionUID"))continue; Boolean valid = false; for (java.lang.annotation.Annotation annotation : field.getDeclaredAnnotations()) { if (annotation instanceof JoinColumn) { valid=true; } else if (annotation instanceof Column) { Column column = (Column)annotation; if(column.name().endsWith("Fk")) if(field.getName().endsWith("Id")==false) valid=true; }else if (annotation instanceof OneToMany) { valid=true; } } if(valid ==false) fieldsToInclude.add(str); } Map serialized = model.serialize(fieldsToInclude.toArray(new String[0]),model.getClass().getSimpleName()); Gson gson = new Gson(); String json = gson.toJson(serialized); vo = gson.fromJson(json, TingkatResikoVO.class); } catch (Exception e) { e.printStackTrace(); } return vo; } public TingkatResikoVO transferModelToVOCustom(TingkatResiko model, TingkatResikoVO vo,String[] fieldsToInclude) { if (null == vo) vo = new TingkatResikoVO(); try { Map serialized = model.serialize(fieldsToInclude,model.getClass().getSimpleName()); Gson gson = new Gson(); String json = gson.toJson(serialized); vo = gson.fromJson(json, TingkatResikoVO.class); } catch (Exception e) { e.printStackTrace(); } return vo; } }